日期類實現

2021-10-24 22:54:49 字數 2000 閱讀 7337

c++作為一門物件導向的語言,抽象思想非常重要,將事物抽象為類,通過物件之間的互動解決問題,是物件導向程式設計語言的解題思想.

本章定義乙個日期類,用於解決和日期相關的問題.

*要自定義乙個類,首先需要構造出類需要的成員變數,日期類的成員變數包括三個變數,年月日.

其次,需要例項化類,需要實現類的建構函式,並且可以通過外部傳參來初始化物件.

類與類之間相互賦值通過拷貝構造的呼叫.

同時希望日期類能進行加減操作,則需要實現類的加減法運算子過載.

最後,希望物件之間能實現相互比較,需實現比較運算子過載.

為了便於檢視,最後實現類的列印函式(也可實現為輸出運算子過載).

*以下便構造出乙個類的基本框架.

class

date

;

在類的實現過程中發現,很多地方的**都可以復用之前寫的邏輯,這也符合計算機程式設計的基本思想"不重複製造輪子".

類的實現過程中還發現,日期的加減法實現需要一些重複呼叫的操作,於是,將這些操作封裝為private:函式(判斷是否為閏年),每個月的天數儲存為乙個靜態陣列,減少記憶體開銷.

以下為日期類的實現**.

int date::day_size[12]

=;date::

date

(int y,

int m,

int d)

date::

date

(const date& d)

date& date::

operator++(

)date date::

operator++(

int)

date& date::

operator--(

)date date::

operator--(

int)

date& date::

operator-=

(int num)

date& date::

operator+=

(int num)

date date::

operator+(

int num)

else}if

(num > day_size[ret.mouth -1]

- ret.day)

else

if(ret.mouth >12)

}return ret;

}date date::

operator-(

int num)

else}if

(num >= ret.day)

else

if(ret.mouth <=0)

}return ret;

}bool date::

operator

<

(const date& d)

else

if(year == d.year)

else

if(mouth == d.mouth)}}

return

false;}

bool date::

operator==(

const date& d)

bool date::

operator

>

(const date& d)

bool date::

operator

>=

(const date& d)

bool date::

operator!=(

const date& d)

bool date::

operator

<=

(const date& d)

void date::

print()

const

bool

isleapyear()

本章為日期類的構造,主要練習對日期的抽象,如有錯誤,還望指出.

實現日期類

題目 實現乙個日期類,主要實現日期計算功能 日期 天數 日期 日期 天數 日期 日期 日期 天數 要實現該日期類,必須熟練掌握運算子過載的概念和實現方法。以下是編寫的乙個日期類 標頭檔案 ifndef date h define date h includeusing namespace std c...

Date類,實現日期類

1 概述 類 date 表示特定的瞬間,精確到毫秒。2 構造方法 public date public date long date 把乙個long型別的毫秒值轉換成乙個日期物件 3 成員方法 public long gettime 獲取乙個日期物件物件毫秒值 public void settime...

日期類的實現

在學習c 類的時候,日期類是最基礎也是最重要的乙個類。簡單的日期類並不複雜,但在實現的過程中主要會涉及一些c 的基本成員函式。這個 的難度主要在於如何判斷日期類的合法性,比如月份如果大於12,天數也要合法,比如二月不能閏年不能超過30天,平年28天。在自增和自減的時候,也要考慮到年份 月份和天數的變...