#include
using namespace std;
class Clock
{
int hour, minute, seconds;
public:
Clock(int hour, int minute, int seconds):hour(hour), minute(minute), seconds(seconds) {}
void ShowTime()
{
cout<<hour<<":"<<minute<<":"<<seconds<<endl;
}
Clock& operator++()
{
if(++seconds == 60)
seconds = 0, ++minute;
if(minute == 60)
minute=0, ++hour;
if(hour == 24)
hour = 0;
return *this;
}
Clock operator++(int)
{
Clock c = *this;
++(*this);
return c;
}
};
int main()
{
Clock myClock(23, 59, 58);
cout << "output:" << endl;
myClock.ShowTime();//23:59:58
myClock++;
myClock.ShowTime();//23:59:59
++myClock;
myClock.ShowTime();//0:0:0
(myClock++).ShowTime();//0:0:0
(++myClock).ShowTime();//0:0:2
}
第一个myClock++显示输出秒加1是不是因为Clock c = *this; 类似浅拷贝啊
(myClock++).ShowTime(); 输出秒为0 这为什么啊?? 求解决
谢谢