运算符前置++和后置++重载为时钟类的成员函数

源程序:

#include<iostream.h>
class Clock	                  //时钟类声明
{
public:	                      //外部接口
	Clock(int NewH=0, int NewM=0, int NewS=0);
	void ShowTime();
	Clock& operator ++();     //前置单目运算符重载
	Clock operator ++(int);   //后置单目运算符重载
private:                      //私有数据成员
	int Hour, Minute, Second;
};

Clock::Clock(int NewH, int NewM, int NewS)
{
	if (0<=NewH && NewH<24 &&0<=NewM && NewH<60 &&0<=NewS && NewS<60)
	{
		Hour=NewH;
		Minute=NewM;
		Second=NewS;
	}
	else 
		cout << "Tine error!"<<endl;
}

void Clock::ShowTime()
{
	cout << Hour <<":"<< Minute<<":"<<Second<<endl;
}

Clock& Clock::operator ++()  //前置单目运算符重载函数
{
	Second++;
	if(Second>=60)
    {     Second=Second-60;
		Minute++;
		if(Minute>=60)
           {	Minute=Minute-60;
			Hour++;
			Hour=Hour%24;
		}
	}
	return *this;
}

Clock Clock::operator ++(int)    //后置单目运算符重载
{	
Clock old=*this;
++(*this);
return old;
}

void main()
{
	Clock myClock(23,59,59);
	cout<<"First time output:";
	myClock.ShowTime();
    cout<<"Show myclock++:";
	(myClock++).ShowTime();
    cout<<"Show ++myclock:";
	(++myClock).ShowTime();
}

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值