第八周 專案2 Time類中的運算子過載

2021-07-02 07:21:40 字數 1948 閱讀 8170

問題描述:

實現time類中的運算子過載。

[cpp]view plain

copy

print

?class

ctime  

;   提示1:並不是所有比較運算過載函式都很複雜

[cpp]view plain

copy

print

?//比較運算返回的是比較結果,是bool型的true或false

//可以直接使用已經過載了的運算實現新運算,例如果已經實現了 > ,則實現 <= 就可以很方便了……

bool

ctime::operator <= (ctime &t) 

// 判斷時間t1<=t2

甚至可以如下面的**般簡練:

[cpp]view plain

copy

print

?bool

ctime::operator <= (ctime &t)    

提示2:並不是所有復合賦值運算過載函式都需要很複雜

[cpp]view plain

copy

print

?//可以直接使用已經過載了的加減運算實現

//這種賦值, 例如 t1+=20,直接改變當前物件的值,所以在運算完成後,將*this作為返回值

ctime ctime::operator+=(ctime &c)  

提示3:請自行編制用於測試的main()函式,有些結果不必依賴display()函式,提倡用單步執行檢視結果

**:

main.cpp

#include #include "ctime.h"

using namespace std;

int main();

#endif // ctime_h

ctime.cpp

#include #include "ctime.h"

using namespace std;

ctime::ctime(int h,int m,int s)

void ctime::settime(int h,int m,int s)

void ctime::display()

bool ctime::operator

bool ctime::operator==(ctime &s)

bool ctime::operator!=(ctime &s)

ctime ctime::operator+(ctime &s)

if(b>=60)

if(a>=24)

t.settime(a,b,c);

return t;

}ctime ctime::operator-(ctime &s)

if(b<0)

if(a<0)

t.settime(a,b,c);

return t;

}ctime ctime::operator+(int s)

ctime ctime::operator-(int s)

ctime ctime::operator+=(ctime &s)

ctime ctime::operator-=(ctime &s)

ctime ctime::operator+=(int s)

ctime ctime::operator-=(int s)

執行結果:

第八周 專案2 Time類中的運算子過載

實現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 ...

第八周專案2 Time類中的運算子過載

實現time類中的運算子過載。class ctime 提示1 並不是所有比較運算過載函式都很複雜 比較運算返回的是比較結果,是bool型的true或false 可以直接使用已經過載了的運算實現新運算,例如果已經實現了 則實現 就可以很方便了 bool ctime operator ctime t 判...

第八周專案2 Time類中的運算子過載

問題及 檔名稱 project.cpp 作 者 陳文青 完成日期 2015年5月9日 版 本 號 v1.0 問題描述 實現time類中的運算子過載 程式輸入 程式輸出 include using namespace std class ctime 建構函式 ctime ctime int h,int...