【專案2拓展2(思考)】這個思考題吊一下大家的胃口:設定義了兩個分數類的物件,如cfraction c1, c2。如果定義了int i,我們能用cin>>i>>j;在鍵盤上輸入i和j的值,是否期望用cin>>c1>>c2;輸入分數呢?同理,用cout<
首先要說明:有的c++編譯系統(如vc++6.0)沒有完全實現c++標準,它所提供的字尾.h的標頭檔案不支援把成員函式過載為友元函式,因此在vc++6.0,應把程式的頭兩行:
#include
using namespace std;
改為一行:#include //c語言的風格
這是我自己編寫的有關運算子過載的程式:
[cpp]
#include
enum style_enum;
class cfraction
//建構函式,初始化用
void simplify(); //化簡(使分子分母沒有公因子)
//輸入輸出過載
friend ostream& operator<
friend istream& operator>>(istream &in,cfraction &cf);
//加減乘除,結果需要化簡
friend cfraction operator+(const cfraction &lcf,const cfraction &rcf);
friend cfraction operator-(const cfraction &lcf,const cfraction &rcf);
friend cfraction operator*(const cfraction &lcf,const cfraction &rcf);
friend cfraction operator/(const cfraction &lcf,const cfraction &rcf);
//關係運算子
friend bool operator>(const cfraction &lcf,const cfraction &rcf);
friend bool operator
friend bool operator>=(const cfraction &lcf,const cfraction &rcf);
friend bool operator<=(const cfraction &lcf,const cfraction &rcf);
friend bool operator==(const cfraction &lcf,const cfraction &rcf);
friend bool operator!=(const cfraction &lcf,const cfraction &rcf);
//取+、-一目運算子
cfraction operator+();
cfraction operator-();
};
void cfraction::simplify()
nume /= v1;
deno /= v1;
if(deno < 0)
} //輸出過載
ostream& operator<
//輸入過載
istream& operator>>(istream &in,cfraction &cf)
return in;
} //加法過載
cfraction operator+(const cfraction &lcf,const cfraction &rcf)
//減法過載
cfraction operator-(const cfraction &lcf,const cfraction &rcf)
//乘法過載
cfraction operator*(const cfraction &lcf,const cfraction &rcf)
//除法過載
cfraction operator/(const cfraction &lcf,const cfraction &rcf)
//取正過載
cfraction cfraction::operator+()
//取負重載
cfraction cfraction::operator-()
//大於號過載
bool operator>(const cfraction &lcf,const cfraction &rcf)
//小於號過載
bool operator
//等於過載
bool operator==(const cfraction &lcf,const cfraction &rcf)
//不等於過載
bool operator!=(const cfraction &lcf,const cfraction &rcf)
//
bool operator>=(const cfraction &lcf,const cfraction &rcf)
//
bool operator<=(const cfraction &lcf,const cfraction &rcf)
int main()
#include
enum style_enum;
class cfraction
//建構函式,初始化用
void simplify(); //化簡(使分子分母沒有公因子)
//輸入輸出過載
friend ostream& operator<
friend istream& operator>>(istream &in,cfraction &cf);
//加減乘除,結果需要化簡
friend cfraction operator+(const cfraction &lcf,const cfraction &rcf);
friend cfraction operator-(const cfraction &lcf,const cfraction &rcf);
friend cfraction operator*(const cfraction &lcf,const cfraction &rcf);
friend cfraction operator/(const cfraction &lcf,const cfraction &rcf);
//關係運算子
friend bool operator>(const cfraction &lcf,const cfraction &rcf);
friend bool operator
friend bool operator>=(const cfraction &lcf,const cfraction &rcf);
friend bool operator<=(const cfraction &lcf,const cfraction &rcf);
friend bool operator==(const cfraction &lcf,const cfraction &rcf);
friend bool operator!=(const cfraction &lcf,const cfraction &rcf);
//取+、-一目運算子
cfraction operator+();
cfraction operator-();
};void cfraction::simplify()
nume /= v1;
deno /= v1;
if(deno < 0) }
//輸出過載
ostream& operator<
//輸入過載
istream& operator>>(istream &in,cfraction &cf)
return in;
}//加法過載
cfraction operator+(const cfraction &lcf,const cfraction &rcf)
//減法過載
cfraction operator-(const cfraction &lcf,const cfraction &rcf)
//乘法過載
cfraction operator*(const cfraction &lcf,const cfraction &rcf)
//除法過載
cfraction operator/(const cfraction &lcf,const cfraction &rcf)
//取正過載
cfraction cfraction::operator+()
//取負重載
cfraction cfraction::operator-()
//大於號過載
bool operator>(const cfraction &lcf,const cfraction &rcf)
//小於號過載
bool operator
//等於過載
bool operator==(const cfraction &lcf,const cfraction &rcf)
//不等於過載
bool operator!=(const cfraction &lcf,const cfraction &rcf)
//bool operator>=(const cfraction &lcf,const cfraction &rcf)
//bool operator<=(const cfraction &lcf,const cfraction &rcf)
int main()
C 運算子過載例項
以下示例中定義了乙個class test,過載了 等符號 include include using namespace std class test test const int a v a test const test t1 v t1.v 以下過載小於號 比較兩個物件的大小 bool oper...
C 例項 運算子過載
文章 c 例項 運算子過載 一 兩個複數的加法運算 二 複數的加減乘除運算 三 複數與標準型資料之間的運算,順序任意 四 兩個矩陣間的運算與輸出 行列任意 五 複數與double型資料的運算 六 不同類物件的轉換 一 定義一複數類complex,過載運算子 用於複數的加法運算,將運算子過載函式定義為...
C 程式設計例項 運算子過載
實驗15 運算子過載 實驗目的 通過本實驗,掌握運算子過載的概念。實驗要求 熟練掌握運算子過載的使用技術。實驗內容 實現下面兩個程式,注意 的過載用法。1 定義運算子過載函式為友元函式。include include class a a int i,int j x i y j a operator ...