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天。在自增和自減的時候,也要考慮到年份 月份和天數的變...