9 2 Time 類中的《和》運算子的過載

2021-06-05 20:50:06 字數 2826 閱讀 8325

源程式:

#include using namespace std;

class ctime

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

friend ostream&operator << (ostream&,ctime&);

friend istream&operator >> (istream&,ctime&);

//比較運算子(二目)的過載

bool operator > (ctime &t);

bool operator < (ctime &t);

bool operator >= (ctime &t);

bool operator <= (ctime &t);

bool operator == (ctime &t);

bool operator != (ctime &t);

//二目運算子的過載

ctime operator+(ctime &c);//返回c所規定的時、分、秒後的時間,例t1(8,20,25),t2(11,20,50),t1+t2為:41:15

ctime operator-(ctime &c);//對照+理解

ctime operator+(int s);//返回s秒後的時間

ctime operator-(int s);//返回s秒前的時間

//一目運算子的過載

ctime operator++(int);//後置++,下一秒

ctime operator++();//前置++,下一秒

ctime operator--(int);//後置--,前一秒

ctime operator--();//前置--,前一秒

//賦值運算子的過載

ctime operator+=(ctime &c);

ctime operator-=(ctime &c);

ctime operator+=(int s);//返回s秒後的時間

ctime operator-=(int s);//返回s秒前的時間

};//下面實現所有的運算子過載**。

//為簡化程式設計,請注意通過呼叫已有函式,利用好各函式之間的關係

bool ctime::operator > (ctime &t)

bool ctime::operator < (ctime &t)

bool ctime::operator >= (ctime &t)

bool ctime::operator <= (ctime &t)

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

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

ctime ctime::operator+(ctime &c)

else

ct.second = ct.second + c.second;

if (ct.minute + c.minute >= 60)

else

ct.minute = ct.minute + c.minute;

if (ct.hour + c.hour >= 60)

ct.hour = ct.hour + c.hour - 60;

else

ct.hour = ct.hour + c.hour;

return ct;

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

else

ct.second = ct.second - c.second;

if (ct.minute < c.minute)

else

ct.minute = ct.minute - c.minute;

if (ct.hour < c.hour)

ct.hour = ct.hour + 24 - c.hour;

else

ct.hour = ct.hour - c.hour;

return ct;

}ctime ctime::operator+(int 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)

ctime ctime::operator-=(int s)

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

void main()

{ ctime t1, t2, t;

cin>>t1>>t2;

cout << "t1為:"t2" << endl;

if (t1 < t2) cout << "t1= t2) cout << "t1≥t2" << endl;

if (t1 <= t2) cout << "t1≤t2" << endl;

cout << endl;

//下面自行設計對其他運算子的過載的測試

t = t1 + t2;

cout << "t1+t2="<

執行結果:

Time類中的運算子過載(2) 二目運算子的過載

問題描述及 檔名稱 hellow.cpp 完成日期 2016年5月19日 版本號 v1.0 問題描述 實現time類中的運算子過載。輸入描述 程式輸出 include using namespace std class ctime void set time int h,int m,int s vo...

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

Time 類中的運算子過載

程式的版權和版本宣告部分 檔名稱 time 類中的運算子過載 作 者 馮冬影 完成日期 2014 年 4月 14日 版 本 號 v1.0 對任務及求解方法的描述部分 輸入描述 問題描述 程式輸出 includeusing namespace std class ctime 下面實現所有的運算子過載 ...