【專案-time類中的運算子過載】
實現time類中的運算子過載。
class ctime
;
提示1:並不是所有比較運算過載函式都很複雜
//比較運算返回的是比較結果,是bool型的true或false
//可以直接使用已經過載了的運算實現新運算,例如果已經實現了 > ,則實現 <= 就可以很方便了……
bool ctime::operator
<= (ctime &t) // 判斷時間t1<=t2
甚至可以如下面的**般簡練:
bool ctime::operator
<= (ctime &t)
提示2:並不是所有復合賦值運算過載函式都需要很複雜
//可以直接使用已經過載了的加減運算實現
//這種賦值, 例如 t1+=20,直接改變當前物件的值,所以在運算完成後,將*this作為返回值
ctime &ctime::operator+=(ctime &c)
提示3:請自行編制用於測試的main()函式,有些結果不必依賴display()函式,提倡用單步執行檢視結果
[參考解答]
#include
using
namespace
std;
class ctime
;//建構函式
ctime::ctime(int h,int m,int s)
// 設定時間
void ctime::settime(int h,int m,int s)
// 過載輸入運算子》
istream &operator>>(istream &in,ctime &t)
return
cin;
}// 過載輸出運算子<<
ostream &operator
<<(ostream &out,ctime t)
//比較運算子的過載
bool ctime::operator > (ctime &t) // 判斷時間t1>t2
bool ctime::operator
< (ctime &t)// 判斷時間t1
bool ctime::operator == (ctime &t)// 判斷時間t1==t2
bool ctime::operator != (ctime &t) // 判斷時間t1!=t2
bool ctime::operator >= (ctime &t)// 判斷時間t1>=t2
bool ctime::operator
<= (ctime &t) // 判斷時間t1<=t2
//二目運算子的過載
// 計算時間之和, 返回c所規定的時、分、秒後的時間,例t1(8,20,25),t2(11,20,50),t1+t2為:41:15
ctime ctime::operator + (ctime &t)
if (m>59)
while (h>23) h-=24;
ctime t0(h,m,s);
return t0;
}//返回s秒後的時間
ctime ctime::operator+(int s)
// 計算時間之差
ctime ctime::operator - (ctime &t)
if (m<0)
while (h<0) h+=24;
ctime t0(h,m,s);
return t0;
}//返回s秒前的時間
ctime ctime::operator-(int s)
//一目運算子的過載
ctime ctime::operator++(int)//後置++,下一秒
ctime &ctime::operator++()//前置++,下一秒
ctime ctime::operator--(int)//後置--,前一秒
ctime &ctime::operator--()//前置--,前一秒
//賦值運算子的過載
ctime &ctime::operator+=(ctime &c)
ctime &ctime::operator-=(ctime &c)
ctime &ctime::operator+=(int s)//返回s秒後的時間
ctime &ctime::operator-=(int s)//返回s秒前的時間
int main()
C 實踐參考 Time類中的運算子過載
all right reserved.檔名稱 test.cpp 作 者 韓雙志 完成日期 2016年5月24日 版本號 v1.0 問題描述 實現time類中的運算子過載 輸入描述 輸入兩個時間格式為時 分 秒 輸出描述 輸出比較後的時間 include using namespace std cla...
C 實踐參考 複數類中的運算子過載
返回 賀老師課程教學鏈結 專案 實現複數類中的運算子過載 1 請用類的成員函式,定義複數類過載運算子 使之能用於複數的加減乘除 class complex complex double r,double i complex operator const complex c2 complex oper...
Time類中的運算子過載
include using namespace std class ctime void settime int h,int m,int s void display 二目的比較運算子過載 bool operator ctime t bool operator ctime t bool operat...