单目运算符重载

来源:互联网 发布:软件项目生命周期图 编辑:程序博客网 时间:2024/05/01 08:18
#include <iostream.h>class Clock{public:Clock(int NewH=0,int NewM=0,int NewS=0);void ShowTime();Clock& operator ++();  //前置单目运算符Clock operator ++(int);//后置单目运算符重载 int的作用就是区分前置和后置private:int Hour,Minute,Second;};Clock::Clock(int NewH,int NewM,int NewS){if (0<=NewH&&NewH<24&&0<=NewM&&NewM<60&&0<=NewS&&NewS<60){Hour=NewH;Minute=NewM;Second=NewS;}else{cout<<"Time error!"<<endl;}}void Clock::ShowTime(){cout<<Hour<<":"<<Minute<<":"<<Second<<endl;}Clock& Clock::operator ++(){  //前置单目运算符重载Second++;if (Second>=60){Second%=60;Minute++;if (Minute>=60){Minute%=60;Hour++;Hour%=24;}}return *this;}Clock Clock::operator ++(int){  //后置单目运算符重载Clock old=*this;++(*this);return old;}int main(){Clock myClock(23,59,59);cout<<"First time output:";myClock.ShowTime();cout<<"show myclock++:";(myClock++).ShowTime();cout<<"show ++myClock:";(++myClock).ShowTime();}
<img src="http://img.blog.csdn.net/20140827140012765?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvU3VuMTk5MTAxMTQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />
                                             
0 0
原创粉丝点击