面對日期類裡面的加加減減涉及到的進製和借位,我更傾向使用乙個儲存了每個月天數的陣列代替,雖然很佔記憶體,但是方法簡化了,而且不需要遍歷陣列,只需要拿到月份的數字,用月份的數字當下標就可以得到這個月的天數(雜湊表的簡單應用),這種方法很好用,尤其是在需要不斷的遍歷陣列的時候,可以用這種方法代替遍歷.
在寫**的時候,還需要注意**的復用,這樣寫**的效率會變高,不會把時間都浪費在寫很多類似的邏輯上,比如在本文的過載》,<,==,!=,>=,<=的時候就體現了出來.
#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 的特性將功能利用類進行抽象後進行封裝,之後在通過建立物件實現功能呼叫 基於基...