實際上,c++在設計初就運用了函式的過載,如「+」就可以對整數,浮點數進行運算;「<
運算子過載有以下規則:
1、c++不允許使用者定義新的運算子,只能對c++已有的運算子進行過載;
2、c++不能過載的運算子只有5個,分別是.(成員運算子)、*(成員指標訪問運算子)、::(域運算子)、sizeof(長度運算子)、?:(條件運算子);
3、過載不能夠運算子物件(運算元)的個數;
4、過載不能夠改變運算子的優先順序;
5、過載不能夠改變運算子的結合性-->如 賦值運算子"="是右結合性,自右向左,過載後仍為右結合性;
6、過載的運算子不能夠有預設的引數,否則就改變了運算子操作物件的個數。
7、過載的運算子必須和使用者自定義的型別的物件一起使用,其引數至少有乙個是類物件或者是類物件的引用。
以「+」過載複數運算為例: complex operator +(int a ,complex c)
complex(double r,double i)
complex operator + (complex &c2); //宣告過載運算子「+」的函式
void display();
private:
double real;
double img;
};complex complex :: operator +(complex &c2) //定義過載運算子"+"的函式
void complex :: display()
2、函式名是由 operator 和運算子名稱組成的。
3、c1.operator+(c2)是c1+c2的解釋。
截圖如下:
C 函式的過載 運算子過載
函式的過載 定義 作用 函式名可以相同,提高復用性 滿足條件 同乙個作用域下 函式名稱相同 函式引數型別不同,或者個數不同,或者順序不同 注意 函式的返回值不可以作為函式過載的條件 includeusing namespace std void func 運算子過載 對已有的運算子重新定義,賦予其另...
C 運算子過載函式之成員運算子過載函式
5.2.3 成員運算子過載函式 在c 中可以把運算子過載函式定義為某個類的成員函式,稱之為成員運算子過載函式。1.定義成員運算子過載函式的語法形式 1 在類的內部,定義成員運算子過載函式的格式如下 函式型別 operator 運算子 形參表 2 成員運算子過載函式也可以在類中宣告成員函式的原型,在類...
C 運算子過載和函式過載
c 允許在同一作用域中的某個函式和運算子指定多個定義,分別稱為函式過載和運算子過載。過載宣告是指乙個與之前已經在該作用域內宣告過的函式或方法具有相同名稱的宣告,但是它們的引數列表和定義 實現 不相同。當呼叫乙個過載函式或過載運算子時,編譯器通過把您所使用的引數型別與定義中的引數型別進行比較,決定選用...