方案三:在方案二的基礎上,擴充套件+、-、*、/運算子的功能,使之能與double型資料進行運算。設complex c; double d; c?d和d?c的結果為將d視為實部為d的複數同c運算的結果(其中?為+、-、*、/之一)。另外,定義一目運算子-,-c相當於0-c。
#include using namespace std;
class complex
complex(double r,double i)
complex operator-();
friend complex operator+(complex &c1, complex &c2);
friend complex operator+(double d1, complex &c2);
friend complex operator+(complex &c1, double d2);
friend complex operator-(complex &c1, complex &c2);
friend complex operator-(double d1, complex &c2);
friend complex operator-(complex &c1, double d2);
friend complex operator*(complex &c1, complex &c2);
friend complex operator*(double d1, complex &c2);
friend complex operator*(complex &c1, double d2);
friend complex operator/(complex &c1, complex &c2);
friend complex operator/(double d1, complex &c2);
friend complex operator/(complex &c1, double d2);
void display();
private:
double real;
double imag;
};
complex complex::operator-()
//複數相加:(a+bi)+(c+di)=(a+c)+(b+d)i.
complex operator+(complex &c1, complex &c2)
complex operator+(double d1, complex &c2)
complex operator+(complex &c1, double d2)
//複數相減:(a+bi)-(c+di)=(a-c)+(b-d)i.
complex operator-(complex &c1, complex &c2)
complex operator-(double d1, complex &c2)
complex operator-(complex &c1, double d2)
//複數相乘:(a+bi)(c+di)=(ac-bd)+(bc+ad)i.
complex operator*(complex &c1, complex &c2)
complex operator*(double d1, complex &c2)
complex operator*(complex &c1, double d2)
//複數相除:(a+bi)/(c+di)=(ac+bd)/(c^2+d^2) +(bc-ad)/(c^2+d^2)i
上機感言:對double型資料的運用還是一知半解、知識綜合起來運用還是吃力一些。。。
第八周作業任務三
include using namespace std class cfraction void simplify void display cfraction operator const cfraction c 兩個分數相加,結果要化簡 cfraction operator const cfra...
第八周實驗報告(任務1 方案1)
題目介紹 任務1 實現複數類中的運算子過載 定義乙個複數類過載運算子 使之能用於複數的加減乘除。1 方案一 請用類的成員函式完成運算子的過載 class complex complex double r,double i complex operator complex c2 complex ope...
第八周任務(三)
宣告 此任務是老師的答案。總是把博文攢到乙個時間才交上去。include using namespace std class cfraction void simplify void display cfraction operator const cfraction c 兩個分數相加,結果要化簡 ...