第十三周專案1 分數類中的運算子過載(改進)

2021-07-12 07:06:49 字數 2970 閱讀 4030

問題及**:

/*

*檔名稱:zwj.cpp

*作 者:張偉晶

*完成日期:2023年6月2日

*版 本 號:v1.0

* *問題描述:實現分數類中的運算子過載,加減乘除比較;在此基礎上增加取正求反,求倒數運算,交換律

*輸入描述:

*程式輸出:

*/#include#includeusing namespace std;

class cfraction

void huajian();

friend istream &operator>>(istream &in,cfraction &x);

friend ostream &operator<

///下面!!!

friend cfraction operator + (double d,const cfraction &c);

friend cfraction operator - (double d,const cfraction &c);

friend cfraction operator * (double d,const cfraction &c);

friend cfraction operator / (double d,const cfraction &c);

cfraction operator +(const cfraction &c);

cfraction operator -(const cfraction &c);

cfraction operator *(const cfraction &c);

cfraction operator /(const cfraction &c);

//分數比較大小

bool operator>(const cfraction &c);

bool operator

bool operator==(const cfraction &c);

//按位取反運算子

cfraction operator+();

cfraction operator-();

cfraction operator~();

///分數與整數

cfraction operator + (double &d);

cfraction operator - (double &d);

cfraction operator * (double &d);

cfraction operator / (double &d);

};cfraction operator + (double d,const cfraction &c)

cfraction operator - (double d,const cfraction &c)

cfraction operator * (double d,const cfraction &c)

cfraction operator / (double d,const cfraction &c)

/************************** */

/*cfraction operator+(double &d,cfraction &c)

*/cfraction cfraction::operator+(double &d)

cfraction cfraction::operator-(double &d)

cfraction cfraction::operator*(double &d)

cfraction cfraction::operator/(double &d)

//過載函式的實現以及用於測試的main()函式

void cfraction::huajian()

int m,n,r=1;

m=num;

n=deno;

while(r=m%n)

num=num/n*pow(-1,k);

deno=deno/n;}/*

cfraction operator+(double &d,cfraction &c)

*/// 過載輸入運算子》

istream &operator>>(istream &in,cfraction &x)

return cin;

}// 過載輸出運算子<<

ostream &operator<

bool cfraction::operator

bool cfraction::operator==(const cfraction &c)

//按位取反

cfraction cfraction::operator+()

cfraction cfraction ::operator-()

cfraction cfraction::operator~()

else

return n;

}int main()

{ cfraction x,y,z;

cout

cout<

cin>>y;

cout

執行結果:

知識點:

運算子過載中加減乘除的運算,分數加實數和實數加分數都要分別定義,而且實數加分數的運算需要定義友元函式的運算。

friend cfraction operator + (double d,const cfraction &c);

friend cfraction operator - (double d,const cfraction &c);

friend cfraction operator * (double d,const cfraction &c);

friend cfraction operator / (double d,const cfraction &c);

第十三周專案 1分數類中的運算子過載

檔名稱 main.cpp 作 者 李德坤 完成日期 2016年5月21日 版本號 v1.0 問題描述 分數類中的運算子過載 輸入描述 無 輸出描述 無 include include using namespace std class cfraction ostream operator cfrac...

第十三周專案1 分數類中的運算子過載(1)

檔名稱 test.cpp 作 者 張明宇 完成日期 2016年5月26日 問題及 1 實現分數類中的運算子過載,在分數類中可以完成分數的加減乘除 運算後再化簡 比較 6種關係 的運算。class cfraction 過載函式的實現及用於測試的main 函式 2 在 1 的基礎上,實現分數類中的物件和...

第十三周專案1 分數類

問題及 檔名稱 text.cpp 完成日期 2016年5月26日 版本號 vc 6.0 問題描述 實現分數類中的運算子過載,在分數類中可以完成分數的加減乘除 運算後再化簡 比較 6種關係 的運算。輸入描述 程式輸出 include using namespace std class cfractio...