c語言運算符詳解圖解?c 允許同一個作用域某個運算符指定多個定義,稱為運算符重載,下面我們就來說一說關于c語言運算符詳解圖解?我們一起去了解并探讨一下這個問題吧!
c 允許同一個作用域某個運算符指定多個定義,稱為運算符重載。
重載聲明指的是一個與之前已經在該作用域中聲明過的運算符或者說方法具有相同名稱的聲明,但是它們的實現不同。在調用重載運算符的時候,編譯器通過比較,決定最合适的定義,這個選擇的過程稱為重載決策。
重載的運算符是帶有特殊名稱的函數,函數名是由關鍵字operator和要重載的運算符号構成。
例子:
使用運算符重載進行複數運算
#include <iostream>
class Complex
{
public:
Complex(int a, int b) {
this->a = a;
this->b = b;
}
Complex operator (Complex &another) {
Complex temp(this->a another.a, this->b another.b);
return temp;
}
private:
int a; //實數
int b; //虛數
};
int main(void) {
Complex c1(1, 2);
Complex c2(2, 4);
Complex c3 = c1 c2; //c1.operator (c2)
return 0;
}
1.c 不允許用戶自己定義新的運算符,隻能對已有的c 運算符進行重載。
2.重載不能改變運算符運算對象的個數。
3.重載不能改變運算符的優先級别。
4.重載不能改變運算符的結合性。
5.運算符重載不能有默認參數。
可重載的運算符and不可重載的運算符可重載的運算符:
雙目算術運算符 |
(加),-(減),*(乘),/(除),% (取模) |
關系運算符 |
==(等于),!= (不等于),< (小于),> (大于),<=(小于等于),>=(大于等于) |
邏輯運算符 |
||(邏輯或),&&(邏輯與),!(邏輯非) |
單目運算符 |
(正),-(負),*(指針),&(取地址) |
自增自減運算符 |
(自增),--(自減) |
位運算符 |
| (按位或),& (按位與),~(按位取反),^(按位異或),,<< (左移),>>(右移) |
賦值運算符 |
=, =, -=, *=, /= , % = , &=, |=, ^=, <<=, >>= |
空間申請與釋放 |
new, delete, new[ ] , delete[] |
其他運算符 |
()(函數調用),->(成員訪問),,(逗号),[](下标) |
不可重載的運算符:
申明:本文章記錄學習筆記,分享給大家一起學習,有不正确的地方歡迎大家指出。如有侵權,馬上删除。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!