日期類 Date 運算子過載簡單應用

2021-08-03 05:47:37 字數 1418 閱讀 3046

面對日期類裡面的加加減減涉及到的進製和借位,我更傾向使用乙個儲存了每個月天數的陣列代替,雖然很佔記憶體,但是方法簡化了,而且不需要遍歷陣列,只需要拿到月份的數字,用月份的數字當下標就可以得到這個月的天數(雜湊表的簡單應用),這種方法很好用,尤其是在需要不斷的遍歷陣列的時候,可以用這種方法代替遍歷.

在寫**的時候,還需要注意**的復用,這樣寫**的效率會變高,不會把時間都浪費在寫很多類似的邏輯上,比如在本文的過載》,<,==,!=,>=,<=的時候就體現了出來.

#include

using namespace std;

class date

bool

operator > (const date &d) const

bool

operator ==(const date&d)const

bool

operator >=(const date&d)const

bool

operator

<=(const date&d)const

bool

operator >(const date&d)const

bool

operator !=(const date&d)const

bool isleapyear(date d)

d.calenter[2] = 28;

return

false;

}date operator+(int day)const

//+ 不是+=,只需要操作,不能給this改變值!!!

else

}return tmp;}}

date operator+=(int day)

date operator-(int day)const

date tmp = *this;

tmp._day -= day;

while (tmp._day < 0)

else

}return tmp;

}date operator-=(int day)

date operator++()//前置

date operator++(int)//後置

date operator--()

date operator--(int)

intoperator-(const date& d)

else

while (tmp1!=tmp2)

return count;

}ostream operator

<<(ostream&os,const date &d)

private:

int _year;

int _month;

int calenter[13];

int _day;

};

簡單的實現Date類 運算子過載

簡單實現乙個date類,主要是運算子的過載!首先在date類的實現過程中,需要注意以下幾點 日期 天數 1.加的天數為負數的情況 2.加之後的天數超過當月最大天數 月數 1,天數 已經加過的天數 3.月數 1之後大於12 年數 1 日期 天數 1.減的天數為負數的情況 2.減之後的天數超過當月最大天...

日期類之運算子過載

date.h pragma once include include using namespace std class date date const date d 拷貝構造 date bool isinvalid void show date operator const date d 賦值運算...

C 實現日期類(運算子過載)

經歷前期c語言的學習,c語言的程式設計思路是面向過程的程式設計,將所需要實現的功能封裝為每乙個功能函式,在主函式中進行呼叫 c 程式設計思想是物件導向的程式設計,相比較於c語言的程式設計,它更具有更高的安全性和可維護性,c 的特性將功能利用類進行抽象後進行封裝,之後在通過建立物件實現功能呼叫 基於基...