成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

十分鐘理解C ++中的運算符重載

開發(fā) 前端
在C ++中,我們可以使運算符為用戶定義的類工作。這意味著C ++能夠為運算符提供數(shù)據(jù)類型的特殊含義,這種能力稱為運算符重載。

 在C ++中,我們可以使運算符為用戶定義的類工作。這意味著C ++能夠為運算符提供數(shù)據(jù)類型的特殊含義,這種能力稱為運算符重載。

[[354257]]

例如,我們可以在String之類的類中重載運算符'+',以便僅使用+就可以連接兩個字符串。 算術(shù)運算符可能會重載的其他示例類是復數(shù),小數(shù),大整數(shù)等。

一個簡單而完整的例子

 

  1. #include<iostream>  
  2. using namespace std;  
  3.    
  4. class Complex {  
  5. private:  
  6.     int real, imag;  
  7. public:  
  8.     Complex(int r = 0, int i =0)  {real = r;   imag = i;}  
  9.     Complex operator + (Complex const &obj) {  
  10.          Complex res;  
  11.          res.real = real + obj.real;  
  12.          res.imag = imag + obj.imag;  
  13.          return res;  
  14.     }  
  15.     void print() { cout << real << " + i" << imag << endl; }  
  16. };  
  17.    
  18. int main()  
  19. {  
  20.     Complex c1(10, 5), c2(2, 4);  
  21.     Complex c3 = c1 + c2;  
  22.     c3.print();  
  23. }  

 

操作員功能和普通功能有什么區(qū)別?

操作員功能與普通功能相同。唯一的區(qū)別是,運算符的名稱始終是運算符關(guān)鍵字,后跟運算符的符號,并且在使用相應的運算符時會調(diào)用運算符功能。

以下是全局運算符功能的示例。

 

  1. #include<iostream>  
  2. using namespace std;  
  3.    
  4. class Complex {  
  5. private:  
  6.     int real, imag;  
  7. public:  
  8.     Complex(int r = 0, int i =0)  {real = r;   imag = i;}  
  9.     void print() { cout << real << " + i" << imag << endl; }  
  10.  
  11. friend Complex operator + (Complex const &, Complex const &);  
  12. };  
  13.    
  14.    
  15. Complex operator + (Complex const &c1, Complex const &c2)  
  16. {  
  17.      return Complex(c1.real + c2.real, c1.imag + c2.imag);  
  18. }  
  19.    
  20.    
  21. int main()  
  22. {  
  23.     Complex c1(10, 5), c2(2, 4);  
  24.     Complex c3 = c1 + c2;  
  25.     c3.print();  
  26.     return 0;  
  27. }  

 

我們可以讓所有運算符超負荷嗎?

除了少數(shù)操作員之外,幾乎所有操作員都可以重載。以下是不能重載的運算符的列表。

為什么不能。(點),::,?:和sizeof是否過載?

請參閱此以獲取Stroustrup自己的答案。

關(guān)于運算符重載的要點

1)為了使運算符重載起作用,至少一個操作數(shù)必須是用戶定義的類對象。

2) 賦值運算符:編譯器會自動為每個類創(chuàng)建一個默認的賦值運算符。默認賦值運算符確實將右側(cè)的所有成員分配到左側(cè),并且在大多數(shù)情況下都可以正常工作(此行為與復制構(gòu)造函數(shù)相同)。請參閱此了解更多詳情。

3) 轉(zhuǎn)換運算符:我們還可以編寫可用于將一種類型轉(zhuǎn)換為另一種類型的轉(zhuǎn)換運算符。

 

  1. #include <iostream>  
  2. using namespace std;  
  3. class Fraction  
  4. {  
  5.     int num, den;  
  6. public:  
  7.     Fraction(int n,  int d) { num = n; den = d; }  
  8.  
  9.     operator float() const {  
  10.         return float(num) / float(den);  
  11.     }  
  12. };  
  13.    
  14. int main() {  
  15.     Fraction f(2, 5);  
  16.     float val = f;  
  17.     cout << val;  
  18.     return 0;  
  19. }  

 

重載的轉(zhuǎn)換運算符必須是成員方法。其他運算符可以是成員方法或全局方法。

4)任何可以用單個參數(shù)調(diào)用的構(gòu)造函數(shù)都可以用作轉(zhuǎn)換構(gòu)造函數(shù),這意味著它也可以用于隱式轉(zhuǎn)換為正在構(gòu)造的類。

 

  1. #include<iostream>   
  2. using namespace std;  
  3.    
  4. class Point  
  5. {  
  6. private:  
  7.     int x, y;  
  8. public:  
  9.     Point(int i = 0, int j = 0) {  
  10.         x = i;   y = j;  
  11.     }  
  12.     void print() {  
  13.         cout << endl << " x = " << x << ", y = " << y;  
  14.     }  
  15. };  
  16.    
  17. int main() {  
  18.     Point t(20, 20);  
  19.     t.print();  
  20.     t = 30;    
  21.     t.print();  
  22.     return 0;  

 

責任編輯:華軒 來源: 今日頭條
相關(guān)推薦

2019-04-01 14:59:56

負載均衡服務器網(wǎng)絡

2016-06-13 14:07:50

Java動態(tài)代理

2020-09-27 14:41:37

C語言編程語言計算機

2020-12-17 06:48:21

SQLkafkaMySQL

2022-03-23 09:32:38

微服務容器Kubernetes

2024-06-19 09:58:29

2021-09-07 09:40:20

Spark大數(shù)據(jù)引擎

2022-06-16 07:31:41

Web組件封裝HTML 標簽

2023-04-12 11:18:51

甘特圖前端

2016-01-04 11:18:00

KubernetesKubernetes概容器技術(shù)

2012-07-10 01:22:32

PythonPython教程

2024-05-13 09:28:43

Flink SQL大數(shù)據(jù)

2015-09-06 09:22:24

框架搭建快速高效app

2023-11-30 10:21:48

虛擬列表虛擬列表工具庫

2023-11-09 14:44:27

Docker鏡像容器

2019-09-16 09:14:51

2009-10-09 14:45:29

VB程序

2022-08-26 09:01:07

CSSFlex 布局

2023-07-15 18:26:51

LinuxABI

2024-11-07 16:09:53

點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 国产精品久久久久久婷婷天堂 | 精品国产乱码久久久久久闺蜜 | 亚洲天堂中文字幕 | 毛片高清 | 欧美日韩国产中文 | 一区二区三区精品在线视频 | 国产一区 | av色站| 久久在视频| 中文字幕黄色大片 | 久久久久91| 国产高清视频一区 | 五月激情六月婷婷 | 久草在线在线精品观看 | 一区二区三区久久久 | 欧美啪啪 | 久久99这里只有精品 | 有码在线 | 国产精品3区 | 羞羞视频免费观看入口 | 精品成人佐山爱一区二区 | 精品久久久久久亚洲综合网 | 国产精品日韩 | 久久中文视频 | 日韩不卡一区二区 | 精品99久久| 午夜视频一区 | 色吧色综合 | www..99re| 成年人黄色小视频 | 亚洲一二三视频 | 国产精品毛片 | 国产在线永久免费 | 久久黄色精品视频 | 日韩三级 | 国产视频一区在线 | 国产高清视频 | 毛片一区二区三区 | 欧美一级在线 | 911网站大全在线观看 | 国产一区欧美 |