c 第八周 任務1 2 實現複數類中的運算子過載

2021-06-05 17:30:11 字數 2105 閱讀 1622

/* (程式頭部注釋開始)

* 程式的版權和版本宣告部分

* 檔名稱: c++第八周【任務1-2】

* 作 者: 李洪懸

* 完成日期: 2012 年 4 月 11 日

* 版 本 號:

* 對任務及求解方法的描述部分

* 輸入描述:

* 問題描述:實現複數類中的運算子過載

* 程式輸出:

* 程式頭部的注釋結束

*/

任務1】實現複數類中的運算子過載

定義乙個複數類過載運算子+、-、*、/,使之能用於複數的加減乘除。

(1)方案一:請用類的成員函式完成運算子的過載;

class complex

complex(double r,double i)

complex operator+(complex &c2);

complex operator-(complex &c2);

complex operator*(complex &c2);

complex operator/(complex &c2);

void display();

private:

double real;

double imag;

};//下面定義成員函式

int main()

(2)方案二:請用類的友元函式,而不是成員函式,完成上面提及的運算子的過載;

(3)方案三:在方案二的基礎上,擴充套件+、-、*、/運算子的功能,使之能與double型資料進行運算。設complex c; double d; c?d和d?c的結果為將d視為實部為d的複數同c運算的結果(其中?為+、-、*、/之一)。另外,定義一目運算子-,-c相當於0-c。

#include < iostream >   

using namespace std;

class complex

complex (double r,double i)

friend complex operator + (complex &c1 , complex &c2);

friend complex operator - (complex &c1 , complex &c2);

friend complex operator * (complex &c1 , complex &c2);

friend complex operator / (complex &c1 , complex &c2);

void display();

private:

double real;

double imag;

};

//複數相加: (a+bi)+(c+di)=(a+c)+(b+d)i.

complex operator + (complex &c1 , complex &c2)

//複數相減:(a+bi)-(c+di)=(a-c)+(b-d)i.

complex operator - (complex &c1 , complex &c2)

//複數相乘:(a+bi)(c+di)=(ac-bd)+(bc+ad)i.

complex operator * (complex &c1 , complex &c2)

//複數相除:(a+bi)/(c+di)=(ac+bd)/(c^2+d^2) +(bc-ad)/(c^2+d^2)i

第八周 任務一

實驗內容 實現複數類中的運算子過載定義乙個複數類過載運算子 使之能用於複數的加減乘除。程式的版權和版本宣告部分 檔名稱 實現複數類中的運算子過載 作 者 薛廣晨 完成日期 2012 年 4 月 7 日 版 本號 x1.0 對任務及求解方法的描述部分 輸入描述 程式頭部的注釋結束 此處也刪除了斜槓 任...

第八周 任務四

實驗內容 實現分數的運算子過載 程式的版權和版本宣告部分 檔名稱 實現分數的運算子過載 作 者 薛廣晨 完成日期 2012 年 4 月 7 日 版 本號 x1.0 任務4 在任務3的基礎上拓展。分數類中的物件可以和整型數進行四則運算,且運算符合交換律。例如 cfraction a 1,3 b int...

第八周任務2

include using namespace std class ctime void settime int h,int m,int s void display 比較運算子 二目 的過載 bool operator ctime t bool operator ctime t bool oper...