實現time類中的運算子過載。
class ctime
private:
unsigned short int hour; // 時
unsigned short int minute; // 分
unsigned short int second; // 秒
public:
ctime(int h=0,int m=0,int s=0);
void settime(int h,int m,int s);
void display();
//二目的比較運算子過載
bool operator > (ctime &t);
bool operator < (ctime &t);
booloperator >= (ctime &t);
bool operator <= (ctime &t);
bool operator == (ctime &t);
bool operator != (ctime &t);
//二目的加減運算子的過載
//返回t規定的時、分、秒後的時間
//例t1(8,20,25),t2(11,20,50),t1+t2為19:41:15
ctime operator+(ctime &t);
ctime operator-(ctime &t);//對照+理解
ctime operator+(int s);//返回s秒後的時間
ctime operator-(int s);//返回s秒前的時間
//二目賦值運算子的過載
ctime operator+=(ctime &c);
ctime operator-=(ctime &c);
ctime operator+=(int s);//返回s秒後的時間
ctime operator-=(int s);//返回s秒前的時間
提示1:並不是所有比較運算過載函式都很複雜
[cpp] view plaincopyprint?在code上檢視**片派生到我的**片
//比較運算返回的是比較結果,是bool型的true或false
//可以直接使用已經過載了的運算實現新運算,例如果已經實現了 > ,則實現 <= 就可以很方便了……
bool ctime::operator <= (ctime &t)// 判斷時間t1<=t2
if (*this > t) return false;
return true;
甚至可以如下面的**般簡練:
[cpp] view plaincopyprint?在code上檢視**片派生到我的**片
bool ctime::operator <= (ctime&t)
return !(*this > t)
提示2:並不是所有復合賦值運算過載函式都需要很複雜
[cpp] view plaincopyprint?在code上檢視**片派生到我的**片
//可以直接使用已經過載了的加減運算實現
//這種賦值, 例如 t1+=20,直接改變當前物件的值,所以在運算完成後,將*this作為返回值
ctime ctime::operator+=(ctime &c)
*this=*this+c;
return *this;
提示3:請自行編制用於測試的main()函式,有些結果不必依賴display()函式,提倡用單步執行檢視結果
[參考解答]
第八周專案2 Time類中的運算子過載
實現time類中的運算子過載。class ctime 提示1 並不是所有比較運算過載函式都很複雜 比較運算返回的是比較結果,是bool型的true或false 可以直接使用已經過載了的運算實現新運算,例如果已經實現了 則實現 就可以很方便了 bool ctime operator ctime t 判...
第八周 專案2 Time類中的運算子過載
問題描述 實現time類中的運算子過載。cpp view plain copy print class ctime 提示1 並不是所有比較運算過載函式都很複雜 cpp view plain copy print 比較運算返回的是比較結果,是bool型的true或false 可以直接使用已經過載了的運...
第八周專案2 Time類中的運算子過載
問題及 檔名稱 project.cpp 作 者 陳文青 完成日期 2015年5月9日 版 本 號 v1.0 問題描述 實現time類中的運算子過載 程式輸入 程式輸出 include using namespace std class ctime 建構函式 ctime ctime int h,int...