C++程序设计教程笔记之递增运算符重载
live long and prosper
#include<iostream>
using namespace std;
//重载递增运算符
class MyInt
{
friend ostream& operator<<(ostream& cout, MyInt myint);
public:
MyInt() {
num = 10;
}
//重载++运算符
//重载前置递增
MyInt& operator++() {//使用引用保证类中的属性按照递增的规则运算,如果不使用引用,
//每次运算,num都会是一个全新的值,运算之前的之不变。
num++;//先进行++运算
return *this;///将自身作为返回
}
//重载后置递增
MyInt operator++(int) {//由int编译器认为后置++运算符重载
//int作为占位参数,可以区分前置后后置递增
MyInt temp = *this;
num++;
return temp;//返回运算之前的值,局部变量不使用引用
}
private:
int num;
};
//重载左移运算符
ostream& operator<<(ostream& cout, MyInt myint)
{
cout << myint.num;
return cout;
}
void test01() {
MyInt myint;
cout << ++myint << endl;
}
void test02() {
MyInt myint;
cout << myint++ << endl;
cout << myint << endl;
}
int main()
{
//test01();
test02();
return 0;
}