問題及**:
/*
*檔名稱: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...