作用:通过重载递增运算符,实现自己的整型数据递增
代码案例
1.重载前置++运算符
#include <iostream>
#include <string>
using namespace std;
class MyInteger {
friend ostream& operator<<(ostream& out, const MyInteger& myint);
public:
MyInteger() {
m_Num = 0;
}
// 前置++
MyInteger& operator++() {
++m_Num; // 先自增
return *this; // 再返回
}
private:
int m_Num;
};
// 重载输出运算符
ostream& operator<<(ostream& out, const MyInteger& myint) {
out << myint.m_Num;
return out;
}
void test01() {
MyInteger myInt;
cout << ++myInt << endl;
}
int main() {
test01();
system("pause");
return 0;
}
效果图:
注意,这边调用递增运算符要用引用的方式,保证递增始终在一个数据上而非其它变量,否则会出现结果不一致的情况,例如:
正确形式:
错误案例:
2.重载后置++运算符
后置递增使用值的原因:temp值为局部变量,使用完便被释放掉,而引用不能返回局部变量