#include<iostream>
using namespace std;
class Clock
{
public:
Clock(int NewH, int NewM, int NewS);
void ShowTime();
Clock& operator ++(); //前置单目运算符重载
Clock operator ++(int); //后置单目运算符重载
private:
int Hour, Minute, Second;
};
//前置单目运算符重载函数
Clock& Clock::operator ++()
{
Second++;
if (Second >= 60) {
Second -= 60;
Minute++;
if (Minute >= 60) {
Minute -= 60;
Hour = (Hour + 1) % 24;
}
}
return *this;
}
//后置单目运算符重载
Clock Clock::operator ++(int)
{ //注意形参表中的整型参数
Clock old = *this;
++(*this);
return old;
}
Clock::Clock(int NewH, int NewM, int NewS) {
Hour = NewH;
Minute = NewM;
Second = NewS;
}
void Clock::ShowTime() {
cout << Hour << ":" << Minute << ":" << Second << endl;
}
int main()
{
Clock myClock(23, 59, 59);
cout << "First time output:";
myClock.ShowTime();
cout << "Show myClock++:";
(myClock++).ShowTime(); //后置
cout << "Show ++myClock:";
(++myClock).ShowTime(); //前置
return 0;
}