運算子過載 複數類

2021-09-01 12:20:36 字數 1298 閱讀 9313

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...