C 實踐參考 Time類中的運算子過載

2021-07-11 17:31:06 字數 2299 閱讀 2568

【專案-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...