10.1.1
//對于上面的運算符重載函數operator+還可以寫的更簡練:
Complex Complex::operator+(Complex &c2)
{return Complex(real+c2.real,imag+c2.imag);}
//函數重載運算符的規則
//(1)c++不允許用戶自己定義新的運算符,只能對c++已有的運算符進行重載.
//(2)只有五種運算符不被允許重載分別為 . .* :: sizeof ?:
//(3)重載不能改變運算符運算對象(即操作數)的個數 不能改變運算符的優先級別 不能改變運算符的結合性
//(4)重載運算符的函數不能帶有默認的參數。。
//(5)重載運算符和用戶自定義類型的對象一起使用時,其參數至少應有一個是 類對象(或類對象的引用)。參數不能全是c++的標準類型
//(6)用于類對象的運算符以一般必須重載,但有兩個例外 = 和 & 不必重載
//(7)應當使重載運算符的功能類似于該運算符作用于標準類型數據時所實現的功能
//(8)運算重載函數可以是類的成員函數,也可以是類的友元函數,還可以是非類的成員函數和普通函數
總結
- 上一篇: 10.1 分别通过函数和重载运算符来实现
- 下一篇: 10.2 运算符重载函数作为类成员函数和