作用:通过重载递增运算符,实现自己的整型数据递增
代码案例
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值为局部变量,使用完便被释放掉,而引用不能返回局部变量