運算子過載練習完成日期類

2021-08-19 05:55:56 字數 2050 閱讀 4490

#include using namespace std;

// 1. 要考慮到日期的合法性

// 2. 考考慮閏年和非閏年

// 3. 需要用到其他輔助函式自己可以新增

class date

cout << "date(int,int,int): " << endl;

} date(const date& d)

: _year(d._year)

, _month(d._month)

, _day(d._day)

// 判斷是否為瑞年

static bool is_leap_year(int year)

return false;

} // 判斷每個月的天數

static int day_of_month(int year, int month)

int month_days[13] = ;

//if (is_leap_year(year) == true)

//month_days[2] += is_leap_year(year);

return month_days[month];

} // 檢查時間是否有效

bool check_is_valid_date()

return true;

} // 列印日期

void display()

// 求當前日期第days天後是哪一天?

date operator+(int days)

temp._day += days;

while (temp._day > day_of_month(_year, _month)) // 迴圈條件:當總天數大於乙個月的天數時

else // 否則,月份加++

}return temp;

} // 求當前日期第days天前是哪一天?

date operator-(int days)

temp._day -= days;

while (temp._day <= 0)

else

temp._day += day_of_month(_year, _month); // 沒有 += 之前這個時候 temp._day 是乙個負值

} return temp;

} // 求兩個日期之間的差值

int operator-(const date& d)

while (maxdate != mindate)

return daynum*flag; }/

// 賦值運算子過載

date& operator=(const date& d)

return *this; }

date& operator+= (int day)//過載+=(復用+)

date& operator-=(int days)

// 前置++

date& operator++()

// 後置++

date operator++(int) //int,區分前置,後置;後置++必須加標誌,這是規定

// 前置--

date& operator--()

// 後置--

date operator--(int) //int,區分前置,後置;後置--必須加標誌,這是規定

// 判斷兩個日期是否相等

bool operator==(const date& d)

// 判斷兩個日期是否不等

bool operator!=(const date& d)

bool operator>(const date& d)

bool operator>=(const date& d)

bool operator<(const date& d)

bool operator<=(const date& d)

private:

int _year;

int _month;

int _day;

};int main()

日期類之運算子過載

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 的特性將功能利用類進行抽象後進行封裝,之後在通過建立物件實現功能呼叫 基於基...

運算子類過載

類過載格式 函式型別 operator 運算子名稱 形參表 型引數 使用引數 1 使用 號實現複數相加 不使用類過載 include using namespace std class complex complex double r,double i complex complex add com...