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

2021-07-13 06:35:22 字數 2255 閱讀 4464



03.*檔名稱:c11weeks.cpp

05.*完成日期:2023年 6月8日

06.*版本號:vc++6.0

07.*/

註有&是引用,呼叫;有可能改變其後變數的值;

無&,其後的變數僅僅參與運算,不會改變其值、

#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 in;//istream為輸入流,把這些資料都放在cont區一起輸入。類t的函式

}// 過載輸出運算子<<

ostream &operator<<(ostream &out,ctime t)

bool ctime::operator < (ctime &t)// 判斷時間t1t.hour) return false;

if (minutet.minute) return false;

if (secondt) return false;

return true;

}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()

如果是ctime &類,一般如turn的都是指標,引用等可以一直存在的量,而不是臨時變數。

二c++之中函式的返回分為以下幾種情況:

1)返回非引用型別:函式的返回值用於初始化在跳出函式時候建立的臨時物件。用函式返回值來初始化臨時物件與用實參初始化形參的方法是一樣的。如果返回型別不是引用的話,在函式返回的地方,會將返回值複製給臨時物件。且其返回值既可以是區域性物件,也可以是表示式的結果。

2)返回引用:當函式返回引用型別的時候,沒有複製返回值,而是返回物件的引用(即物件本身)。

《@》函式返回引用的時候,可以利用全域性變數(作為函式返回),或者在函式的形參表中有引用或者指標(作為函式返回),這兩者有乙個共同點,就是返回執行完畢以後,變數依然存在,那麼返回的引用才有意義。

小結:(1)使用引用當作函式引數和返回值,效率更高。

(2)函式返回的物件引用,必須在呼叫函式前就已經存在,不允許返回區域性變數的引用!

(3)當不希望返回的物件被修改的時候,可以新增const。

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

檔名 zhang.cpp 完成日期 2016年5月25日 版本號 v1.0 問題描述 實現time類中的運算子過載。includeusing namespace std class ctime ctime ctime int h,int m,int s hour h minute m second ...

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

檔名稱 time類中的運算子過載 作 者 岳成豔2016年5月25號 版 本 號 vc 6.0 問題描述 實現time類中的運算子過載。程式輸入 略 程式輸出 略 include using namespace std class ctime ctime ctime int h,int m,int ...

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

檔名稱 第12周專案2 time類中的運算子過載 完成日期 2016.5.25 版本號 v1.0 問題描述 實現time類中的運算子過載。輸入描述 程式輸出 includeusing namespace std class ctime ctime ctime int h,int m,int s ho...