C 類與物件之日期類的實現

2022-09-24 13:12:14 字數 2599 閱讀 6831

目錄

在實現前,我們要先把類寫好,類中包含成員函式和成員變數。

對於日期類來說,拷貝構造和賦值運算子可以不寫,但是我在類中寫了,也沒關係哦。

#include

using std::cout;

using std::endl;

using std::cin;

class date

else

}//拷貝構造

date(const date& d)

//賦值運算子

date& operator=(const date&d)

return *this;

} //判斷合法性

int getmonthday(int year, int month);

//輸出日期

void prit();

//日期+=

date& operator+=(int day);

//日期+

date operator+(int day);

//日期-=

date& operator-=(int day);

//日期-

date operator-(int day);

//日期==

bool operator==(const date& d);

// bool operator>(const date& d);

//日期!=

bool operator != (const date& d);

//<

bool operator < (const date& d);

//>=

inline bool operator >= (const date& d);

//<=

bool operator <= (const date& d);

//++d

date& operator++();

//d++

date& operator++(int);

//--d

date& operator--();

//d--

date& operator--(int);

//日期-日期

int operator-(const date& d);

private:

int _year;

int _month;

int _day;

};//給出當年當月的天數

inline int date::getmonthday(int year, int month)

; dayarray[2] = 28;

if (month == 2 && ((year % 4 == 0www.cppcns.com) && (year % 100 != 0)) || year % 400 == 0)

retu程式設計客棧rn dayarray[month];

}在實現前我們先要利用復用,復用就是把已經寫好的函式來完成要完成的函式。

在這裡,就復用了(日期-=天數的)函式

對於+=,當加乙個天數是為正的時候(如:100),

但當加的天數為負數時(如:-100)

這裡就要先判斷day是否為正負數

如果為正數就正常加,如果是負數就復用-=操作符過載函式

詳細請看下面:

date& date::operator+=(int day)

} }else

return *this;

}這裡也和+=操作符過載函式一樣,都要判斷day是否為正負值

date& date::operator-=(int day)

} }else

return *this;

}減天數,自己沒變,所以要創個臨時變數。

date date::operator-(int day)

與減天數同理

date date::operator+(i day)

對於前置和後置,在函式命名的時候,後置的引數列表多乙個int來佔位。

date& date::operator++()

date& date::operator++(int)

date& date::operator--()

date& date::operator--(int)

else if (_year == d._year)

else if (_month == d._month)

}} 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)

int date::operator-(const date& d)

int m = 0;

while (max!=min)

return m*flag;

}void date::prit()

c 之日期類的實現

date h pragma once include using namespace std class date date const date d date operator const date d public bool operator const date d bool operator...

C 之日期類

includeusing namespace std 主要函式及其含義 計算當前日期day天之後日期date operator const date d1,int day 計算當前日期day天之前日期date operator const date d1,int day 計算兩個日期之間差距int ...

C 之日期類

學完前面的東西,現在來具體應用一下 寫乙個日期類,具體功能如下 bool leapyear int year 判斷是不是閏年 int monthday int year,int month 每月天數的判斷 date operator 前置 date operator int 後置 date oper...