時間類的改進(運算子過載)

2022-09-15 16:06:11 字數 2814 閱讀 5946

【問題描述】主函式設計如下,請勿修改:

int main()
【樣例輸出】

t1+t2:15:57:34

t1+65:02:35:05

65+t1:02:35:05

t2-t1:10:49:34

t1-70:02:32:50

#include

#include

#include

using

namespace std;

class

time

//返回總秒數

time

(int h,

int m,

int s=0)

;//建構函式

time

(int s=0)

;//根據總秒數計算hour、minute、second並構造物件

void

settime

(int h=0,

int m=0,

int s=0)

;void

print_12()

;//按12小時格式顯示時間

void

print_24()

;//按24小時格式顯示時間

//過載「+」運算子

//1. 兩個物件相加:兩種實現方法選一種

time operator+(

const time & t)

const

;//成員函式

//friend time operator+(const time & t1, const time & t2);//友元函式

//friend time operator+(time & t1, time & t2);//友元函式

//2. 乙個表示秒數的int型資料加上乙個time物件:只能用友元函式實現

friend time operator+(

int s, time & t)

;//友元函式

//3. time物件加上int型資料:兩種實現方法選一種

time operator+(

int s)

;//成員函式

//friend time operator+(time & t, int s);//友元函式

//過載「-」運算子

//1. 兩個time物件進行相減:兩種實現方法選一種

time operator

-(time & t)

;//成員函式

//friend time operator-(time & t1, time & t2);//友元函式

//2. time物件減去乙個表示秒數的int型資料:兩種實現方法選一種

time operator-(

int s)

;//成員函式

//friend time operator-(time & t, int s);//友元函式};

time::

time

(int h,

int m,

int s)

//建構函式

time::

time

(int s)

//根據總秒數計算hour、minute、second並構造物件

void time::

settime

(int h,

int m,

int s)

void time::

print_12()

//按12小時格式顯示時間

else

}void time::

print_24()

//按24小時格式顯示時間

//過載「+」運算子

//1. 兩個物件相加:兩種實現方法選一種

time time::

operator+(

const time & t)

const

//成員函式

/*time operator+(const time & t1, const time & t2)//友元函式

time operator+(time & t1, time & t2)//友元函式

*///2. 乙個表示秒數的int型資料加上乙個time物件:只能用友元函式實現

time operator+(

int s, time & t)

//友元函式

/*time operator+(int s, time & t)//友元函式

*///3. time物件加上int型資料:兩種實現方法選一種

time time::

operator+(

int s)

//成員函式

/*time operator+(time & t, int s)//友元函式

*///過載「-」運算子

//1. 兩個time物件進行相減:兩種實現方法選一種

time time::

operator

-(time & t)

//成員函式

/*time operator-(time & t1, time & t2)//友元函式

*///2. time物件減去乙個表示秒數的int型資料:兩種實現方法選一種

time time::

operator-(

int s)

//成員函式

/*time operator-(time & t, int s)//友元函式

*/int

main()

YTU OJ C 時間類的運算子過載

time limit 1 sec memory limit 128 mb submit 187 solved 58 submit status web board c 時間類的運算子過載 定義乙個時間類time,其資料成員為表示時間的小時 hour 分 minute 秒 second 過載運算子 使...

運算子過載 類的賦值運算子過載

下面介紹類的賦值運算子 1.c 中物件的記憶體分配方式 在c 中,物件的例項在編譯的時候,就需要為其分配記憶體大小,因此,系統都是在stack上為其分配記憶體的。這一點和c 完全不同!千 萬記住 在c 中,所有類都是reference type,要建立類的實體,必須通過new在heap上為其分配空間...

運算子類過載

類過載格式 函式型別 operator 運算子名稱 形參表 型引數 使用引數 1 使用 號實現複數相加 不使用類過載 include using namespace std class complex complex double r,double i complex complex add com...