1.普通運算子可以過載
2.型別過載1、防止實參被修改;
2、接收隱式生成臨時物件;
類內是this_call的呼叫約定,成員方法隱藏this指標,指向一般為左運算元,所以只用傳右運算元即可
**如下:
class ccomplex
//構造類內實現+的過載 右運算元型別為int
const ccomplex operator+(int rhs)
ccomplex cc2 = cc1 + 10;
//類內實現《的過載
//std::ostream& operator<<(std::ostream& out)
//
//cc1 << std::cout;左運算元是類內的物件
private:
int mreal; //實部
int mimg; //虛部
//類外不能訪問類內的私有成員變數,設定友元函式
friend const ccomplex operator+(int, const ccomplex&);
friend const ccomplex operator+(const ccomplex&, const ccomplex&);
friend std::ostream& operator <<(std::ostream&, const ccomplex&);
};
類外是cd_call的呼叫約定,無this指標,需傳兩個物件
//類外實現+的過載 左運算元型別為int,右運算元型別為ccomplex
const ccomplex operator+(int lhs, const ccomplex& rhs)
ccomplex cc3 = 10 + cc2; //operator+(10,cc2);
//類外實現+的過載 左操右運算元型別都為ccomplex
const ccomplex operator+(const ccomplex& lhs, const ccomplex& rhs)
ccomplex cc4 = cc2 + cc3;
//類外實現《的過載 左運算元為std::ostream的型別,右運算元為ccomplex型別std::ostream& operator <<(std::ostream& out, const ccomplex& rhs)
std::cout << cc1 << std::endl; 複數類運算子過載
includeusing namespace std class complex complex operator complex co 過載 號,實現複數相加 complex operator complex co 過載 號,實現複數相減 complex operator complex co 過...
8 1 1 運算子過載(複數類)
程式頭部注釋開始 程式的版權和版本宣告部分 檔名稱 實現複數類中的運算子過載 作 者 張傳新 完成日期 2012 年04 月07 日 版 本 號 1.0 對任務及求解方法的描述部分 輸入描述 問題描述 定義乙個複數類過載運算子 使之能用於複數的加減乘除。程式輸出 程式頭部的注釋結束 includeu...
複數類的運算子過載
include using namespace std class complex 建構函式 complex complex const double real 0.0,const double image 0.0 拷貝建構函式 complex complex const complex c rea...