运算符重载实例
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
运算符重载
#include
using namespace std;
class Time{
public:
Time(int newH,int newM,int newS); //有参构造
Time(){ //无参构造
hour=0;
minute=0;
second=0;}
int getH(){return hour;}int getM(){return minute;}
int getS(){return second;}
void getslot(){cin>>hour>>minute>>second;}
void getoldtime(){cin>>hour>>minute>>second;}
void gettime() const;
Time& operator+();
int hour,minute,second;
};
Time::Time(int hour/*=0*/,int minute/*=0*/,int second/*=0*/){
if(0<=hour&&hour<24&&0<=minute&&minute<60&&0<=second&&second<60)
{this->hour=hour;
this->minute=minute;
this->second=second;
}else cout<<"Time error!"< } void Time::gettime()const{ cout< } Time&Time::operator+() {cout<<"timeslot>>";Time timeslot;timeslot.getslot();cout<<"New time>>"; second=second+timeslot.second;if(second>=60){second-=60;minute=minute+1; if(minute>=60){minute-=60; hour=(hour+1)%24; }} minute=minute+timeslot.minute; if(minute>=60){minute-=60; hour=(hour+1)%24;} hour=hour+timeslot.hour;if(hour>=24){hour=(hour+1)%24; } return *this; } int main(){ Time oldclock; cout<<"Set time>>"; oldclock.getoldtime(); if(oldclock.hour>=24||oldclock.minute>=60||oldclock.second>=60) cout<<"Time error!"; else {cout<<"old Time>>"; oldclock.gettime(); (+oldclock).gettime();} return 0; }