#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;
}