当前位置:文档之家› 运算符重载实例

运算符重载实例

运算符重载
#include<iostream>
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!"<<endl;
}
void Time::gettime()const{
cout<<hour<<":"<<minute<<":"<<second<<endl;
}
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;
}。

相关主题