例10.6.txt

来自「《C++程序设计(谭浩强)》代码,均按章节分类」· 文本 代码 · 共 44 行

TXT
44
字号
例10.6 在例10.5程序的基础上增加对后置自增运算符的重载。修改后的程序如下:
#include <iostream>
using namespace std;
class Time
{public:
Time( ){minute=0;sec=0;}
Time(int m,int s):minute(m),sec(s){}
Time operator++( );                              //声明前置自增运算符“++”重载函数
Time operator++(int);                           //声明后置自增运算符“++”重载函数
void display( ){cout<<minute<<″:″<<sec<<endl;}
private:
int minute;
int sec;
}; 

Time Time∷operator++( )                     //定义前置自增运算符“++”重载函数
{if(++sec>=60)
{sec-=60;
++minute;}
return *this;                              //返回自加后的当前对象
}

Time Time∷operator++(int)                  //定义后置自增运算符“++”重载函数
{Time temp(*this);
sec++;
if(sec>=60)
{sec-=60;
++minute;}
return temp;                                //返回的是自加前的对象
}

int main( )
{Time time1(34,59),time2;
cout<<″ time1 : ″;
time1.display( );
++time1;
cout<<″++time1: ″;
time1.display( );
time2=time1++;                             //将自加前的对象的值赋给time2
cout<<″time1++: ″;
time1.display( );
cout<<″ time2 :″;
time2.display( );                            //输出time2对象的值
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?