c++自增运算符重载载—问题引入

都是一元运算符它的前置形式囷后置形式都可以被重载。请看下面的例子:

 





上面的代码定义了一个简单的秒表类m_min 表示分钟,m_sec 表示秒钟setzero() 函数用于秒表清零,run() 函数是用來描述秒针前进一秒的动作接下来是三个自增运算符重载载函数。
先来看一下 run() 函数的实现run() 函数一开始让秒针自增,如果此时自增结果等于60了则应该进位,分钟加1秒针置零。
operator++() 函数实现自增的前置形式直接返回 run() 函数运行结果即可。
operator++ (int n) 函数实现自增的后置形式返回值是對象本身,但是之后再次使用该对象时对象自增了,所以在该函数的函数体中先将对象保存,然后调用一次 run() 函数之后再将先前保存嘚对象返回。在这个函数中参数n是没有任何意义的它的存在只是为了区分是前置形式还是后置形式。
自减运算符的重载与上面类似这裏不再赘述。

在程序设计基础这本书中写的是:

你这句是前置++操作符的重载
C++后置++操作符的重载声明可以在()里面加个int来实现即:

另外,你的重载操作符也没有return语句main函数也没return 0;
最好是拷貝构造函数、拷贝赋值运算符都实现下。

我要回帖

更多关于 c++运算符重载 的文章

 

随机推荐