目錄
在實現前,我們要先把類寫好,類中包含成員函式和成員變數。
對於日期類來說,拷貝構造和賦值運算子可以不寫,但是我在類中寫了,也沒關係哦。
#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...