日期類之運算子過載

2021-08-17 15:57:35 字數 2746 閱讀 7949

①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); //賦值運算子過載

bool

operator==(const date& d); //==過載

bool

operator!=(const date& d); //!=過載

bool

operator>=(const date& d); //>=過載

bool

operator

<=(const date& d); //<=過載

// d1 < d2

bool

operator>(const date& d); //>過載

// d1 > d2

bool

operator

<(const date& d); //《過載

// d1 + 10

date operator+(int day); //+過載

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

date operator-(int day); //-過載

date& operator-=(int day); //-=過載

//++d1

date& operator++(); //前置++

//d1++

date operator++(int); //後置++

date& operator--(); //前置--

date operator--(int); //後置--

intoperator-(const date& d); //計算兩個日期相差天數

private:

int _year;

int _month;

int _day;

};

②date.cpp

#include "date.h"

void date::show()

bool isleapyear(int year)

return

false;

}int getmonthday(int year, int month)

; int day = array[month];

if (month == 2 && isleapyear(year))

return day;

}bool date::isinvalid()

date& date::operator=(const date& d)

return *this;

}bool date::operator==(const date& d) //隱含的this指標

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)

return

false;

}date date::operator+(int day) //本身並沒有改變,不能返回引用

}return ret;

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

date date::operator-(int day)

date ret(*this);

ret._day -= day;

while (ret._day < 0)

else

int monthday = getmonthday(ret._year, ret._month);

ret._day += monthday;

}return ret;

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

date& date::operator++() // 前置(效率高)

date date::operator++(int) // 後置

date& date::operator--()

date date::operator--(int)

int date::operator-(const date& d) //計算兩個日期相差天數

int days = 0;

while (min < max)

return days * flag;

}int main()

C 實現日期類(運算子過載)

經歷前期c語言的學習,c語言的程式設計思路是面向過程的程式設計,將所需要實現的功能封裝為每乙個功能函式,在主函式中進行呼叫 c 程式設計思想是物件導向的程式設計,相比較於c語言的程式設計,它更具有更高的安全性和可維護性,c 的特性將功能利用類進行抽象後進行封裝,之後在通過建立物件實現功能呼叫 基於基...

運算子過載之過載型別運算子

普通型別 類型別 呼叫對應的只有乙個引數 引數的型別就是這個普通型別 的建構函式 需求 boy boy1 10000 薪資 建構函式boy int boy boy2 rock 姓名 建構函式boy char 普通型別賦值給類型別其實很簡單,就是專門的對這個賦值的型別定義乙個建構函式。編譯器在執行 的...

運算子類過載

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