#include <iostream.h>
class Clock{
public:
Clock(int NewH=0,int NewM=0,int NewS=0);
void ShowTime();
Clock& operator ++(); //前置单目运算符
Clock operator ++(int);//后置单目运算符重载 int的作用就是区分前置和后置
private:
int Hour,Minute,Second;
};
Clock::Clock(int NewH,int NewM,int NewS){
if (0<=NewH&&NewH<24&&0<=NewM&&NewM<60&&0<=NewS&&NewS<60){
Hour=NewH;
Minute=NewM;
Second=NewS;
}
else{
cout<<"Time error!"<<endl;
}
}
void Clock::ShowTime(){
cout<<Hour<<":"<<Minute<<":"<<Second<<endl;
}
Clock& Clock::operator ++(){ //前置单目运算符重载
Second++;
if (Second>=60)
{
Second%=60;
Minute++;
if (Minute>=60)
{
Minute%=60;
Hour++;
Hour%=24;
}
}
return *this;
}
Clock Clock::operator ++(int){ //后置单目运算符重载
Clock old=*this;
++(*this);
return old;
}
int main(){
Clock myClock(23,59,59);
cout<<"First time output:";
myClock.ShowTime();
cout<<"show myclock++:";
(myClock++).ShowTime();
cout<<"show ++myClock:";
(++myClock).ShowTime();
}
<img src="https://img-blog.csdn.net/20140827140012765?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvU3VuMTk5MTAxMTQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />