关于C++中的自增/自减运算符重载的问题!
#include <iostream.h>class Clock
{
public:
Clock(int newHour = 0,int newMinute = 0,int newsSecond = 0);
void showTime( );
Clock operator ++( );
Clock operator ++( int );
private:
void incOneSecond( );
int hour,minute,second;
};
void Clock::incOneSecond( )
{
second++;
if(second>=60)
{
second=second-60;
minute++;
if(minute>=60)
{
minute = minute - 60;
hour++;
hour=hour%24;
}
}
}
Clock::Clock(int newHour , int newMinute, int newSecond)
{
if(0<=newHour&&newHour<24&&0<=newMinute&&newMinute<60&&0<=newSecond&&newSecond<60)
{
hour = newHour;
minute = newMinute;
second = newSecond;
}
else cout<<”time error!”;
}
void Clock::showTime( )
{
cout<<hour<<”:”<<minute<<”:”<<second<<endl;
}
Clock Clock::operator++( ) //前置
{
incOneSecond( );
cout<<”++Clock:”;
return *this;
}
Clock Clock::operator++( int ) //后置
{ Clock temp(*this);
incOneSecond( );
cout<<”Clock++:”;
return temp;
}
void main( )
{
Clock myClock(23,59,59);
cout<<”first time output:”;
myClock.showTime();
myClock++.showTime();
(++myClock).showtime();
}
这是我在网上复制过来的一个关于自增函数。
上面的这个函数只是按照一定的规则进行了自增自减的运用。而我想知道的是关于后置函数中的那个int的应用。或者直接说就是关于自增自减运算符重载函数对于前后置的实现原理??????