c語言運算符詳解圖解(運算符重載c基礎語法十二)
2023-05-19 23:20:53
c語言運算符詳解圖解?c 允許同一個作用域某個運算符指定多個定義,稱為運算符重載,下面我們就來說一說關於c語言運算符詳解圖解?我們一起去了解並探討一下這個問題吧!

c語言運算符詳解圖解
c 允許同一個作用域某個運算符指定多個定義,稱為運算符重載。
重載聲明指的是一個與之前已經在該作用域中聲明過的運算符或者說方法具有相同名稱的聲明,但是它們的實現不同。在調用重載運算符的時候,編譯器通過比較,決定最合適的定義,這個選擇的過程稱為重載決策。
重載的運算符是帶有特殊名稱的函數,函數名是由關鍵字operator和要重載的運算符號構成。
例子:
使用運算符重載進行複數運算
#include 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[] |
其他運算符 | (函數調用),->(成員訪問),,(逗號),[](下標) |
不可重載的運算符:
.:成員訪問運算符.*, ->*:成員指針訪問運算符:::域運算符sizeof:長度運算符?::條件運算符#: 預處理符號申明:本文章記錄學習筆記,分享給大家一起學習,有不正確的地方歡迎大家指出。如有侵權,馬上刪除。
,