日期類定義(運算子過載應用):
class
data
//起初只是用來表示出版日期,後來發現借閱與歸還日期都可用
;data
(int year1,
int month1,
int day1)
:year
(year1)
,month
(month1)
,day
(day1)
;friend ostream&
operator
<<
(ostream&os,
const data&d)
;friend istream&
operator
>>
(istream&is,data&d)
;bool
operator
<
(const data &d)
const
//日期比較函式
intoperator
-(data d)
//對日期的操作,可以直接按月份進行兩個月的相減操作,也可以按如下方式進行精確一點的操作(還可以判斷平年閏年進行更精確的操作)
;//按下標(對應月份)補齊,第乙個數不計,對於每年的二月按28天計(不考慮平年閏年)
int count=0;
int a=d.year,b=d.month,c=d.day;
while(1
)else b++;}
else c++
; count++;}
return count;
} data operator+(
int x)
;//按下標(對應月份)補齊,第乙個數不計,對於每年的二月按28天計(不考慮平年閏年)
while
(x--
)else month++;}
else day++;}
return
*this;}
};istream&
operator
>>
(istream&is,data&d)
//先過載出版日期的輸入輸出
return is;
}ostream&
operator
<<
(ostream&os,
const data&d)
時間類定義(運算子過載應用):class
time;~
time()
;time
(int year1,
int month1 ,
int day1,
int hour1,
int min1)
:year
(year1)
,month
(month1)
,day
(day1)
,hour
(hour1)
,min
(min1)
;friend istream&
operator
>>
(istream&
,time&t)
;friend ostream&
operator
<<
(ostream&
,const time&t)
;int
operator
-(time t)
//過載運算子"-"在類內定義,類外定義由於year,month等是私有的,需使用get函式獲取資料,沒有必要
;//按下標(對應月份)補齊,第乙個數不計,對於每年的二月按28天計(不考慮平年閏年)
while(1
)}}}
else
}//cout}//time operator+ (int i); //利用"-"操作可以代替"+"
//對於時間的比較,一開始不打算用的,不過後面的登入以及對使用者對待出行車票的檢視都需要用到
bool
operator
<
(const time&t)
const
bool
operator==(
const time&t)
const};
istream&
operator
>>
(istream&in,time&t)
return in;
}ostream&
operator
<<
(ostream&out,
const time&t)
日期類之運算子過載
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 賦值運算...
運算子類過載
類過載格式 函式型別 operator 運算子名稱 形參表 型引數 使用引數 1 使用 號實現複數相加 不使用類過載 include using namespace std class complex complex double r,double i complex complex add com...
C 實現日期類(運算子過載)
經歷前期c語言的學習,c語言的程式設計思路是面向過程的程式設計,將所需要實現的功能封裝為每乙個功能函式,在主函式中進行呼叫 c 程式設計思想是物件導向的程式設計,相比較於c語言的程式設計,它更具有更高的安全性和可維護性,c 的特性將功能利用類進行抽象後進行封裝,之後在通過建立物件實現功能呼叫 基於基...