類與物件以及過載函式的運用:
ps:有幾個需要注意的小點就直接注釋在**中了。
date.h
#pragma once
#include
using
namespace std;
class
date
;
date.cpp#include
"date.h"
bool
leapyear
(int year)
date::
date
(int year=
1990
,int month=1,
int day=1)
//構造
else
}date::
date
(const date& d)
//拷貝構造 d2(d1)
date::
~date()
date& date::
operator=(
const date& d)
//賦值運算子過載,有深拷貝的時候(字串),必須顯式定義
return
*this
;//返回引用,而不是void,是為了可以實現連續賦值操作
}date& date::
operator+=
(int day)
//日期+=天數
_day +
= day;
while
(_day >
getmonthday
(_year, _month))}
return
*this;}
date date::
operator+(
int day)
//日期+天數
date& date::
operator-=
(int day)
//日期-=天數
_day -
= day;
while
(_day <1)
}return
*this;}
date date::
operator-(
int day)
//日期-天數,不改變日期本身
date& date::
operator++(
)//++date
date date::
operator++(
int)
//date++
date& date::
operator--(
)//--date
date date::
operator--(
int)
//date--
bool date::
operator==(
const date& d)
// ==運算子過載
bool date::
operator!=(
const date& d)
// !=運算子過載
bool date::
operator
>
(const date& d)
// >運算子過載
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)
// <=運算子過載
int date::
getmonthday
(int year,
int month)
// 獲取某年某月的天數
;int day = days[month];if
(month ==2&&
leapyear
(year)
)return day;
}int date::
operator-(
const date& d)
//兩個日期相差多少天
int days =0;
while
(mindate + days < maxdate)
return days;
}void date::
print()
const
//列印
ostream&
operator
<<
(ostream& _cout,
const date& date)
istream&
operator
>>
(istream& _cin, date& date)
main.cpp#include
"date.h"
#include
void
test()
intmain()
敲的越多手越穩! Date類的實現
話說c 和c最重大的不同就是c 有了類這個型別,今天就來封裝乙個類。日期類是一種很常用的類,但是c 就是沒有封裝,只能手動封裝了。涉及到類的構建,一定記住上來先考慮預設成員函式 建構函式 拷貝構造 運算子過載 析構函式 日期類主要有以下功能。1.顯示 2.判斷兩個日期的關係 3.日期加天數 4.日期...
C 類的實現 Date類
主要是有每月的天數問題 另外過載 days時注意不能越界 出現13月時下一年一月 過載比較時只需要實現乙個 其他的直接呼叫這個就可以了 寫到最後發現基本都是直接呼叫之前寫的東西,還是挺好寫的。include using namespace std class date date const date...
Date類,實現日期類
1 概述 類 date 表示特定的瞬間,精確到毫秒。2 構造方法 public date public date long date 把乙個long型別的毫秒值轉換成乙個日期物件 3 成員方法 public long gettime 獲取乙個日期物件物件毫秒值 public void settime...