前置 后置 ++ 运算符重载
自己实现int类型 MyInteger
内部维护以int数据
MyInteger myInt
myInt ++ 后置 ++myInt 前置
重载++运算符 operator++() 前置 operator++(int) 后置
前置理念 先++ 后返回自身 后置理念 先保存住原有值 内部++ 返回临时数据
main.cpp
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;
class MyInteger
{
friend ostream& operator<<(ostream& cout, MyInteger & myInt);
public:
MyInteger()
{
m_Num = 0;
};
//前置++重载
MyInteger& operator++()
{
this->m_Num++;
return *this;
}
//后置++ 重载()中多了一个int
MyInteger operator++(int)
{
//先保存目前数据
MyInteger tmp = *this;
m_Num++;
return tmp;
}
int m_Num;
};
ostream& operator<<(ostream& cout, MyInteger & myInt)
{
cout << myInt.m_Num;
return cout;
}
void test01()
{
MyInteger myInt;
// 前置++
cout << "++(++myInt)===" << ++(++myInt) << endl;//++(++myInt)===2
cout << "myInt===" << myInt << endl; //myInt===2
cout << "myInt++===" << myInt++ << endl; // 后置++ myInt++===2
cout << "myInt===" << myInt << endl; // myInt == = 3
}
int main(){
test01();
/*int a = 10;
cout << ++(++a) << endl;
cout << a << endl;*/
system("pause");
return EXIT_SUCCESS;
}