目录
递增运算符重载
作用:通过重载递增运算符,实现自己的整形数据
局部函数前置++重载
示例:
//前置++,局部函数写法
//返回值注意是引用类型的,这样就是始终对一个数据进行操作,如果把&去掉,每次返回的都是一个新的
Preson& operator++()
{
++this->m_A; //这里this写不写无所谓
++this->m_B;
return *this;
}
全局函数前置++重载
示例:
Preson& operator++(Preson& p)
{
++p.m_A;
++p.m_B;
return p;
}
局部函数后置++重载
示例:
//后置++,int为占位参数
Preson operator++(int)
{
Preson temp = *this;
m_A++;
m_B++;
return temp;
}
全部练习代码示例:
#include <iostream>
using namespace std;
class Preson {
friend ostream& operator<<(ostream& cout, Preson P);
//friend Preson& operator++(Preson& p);
public:
Preson()
{
m_A = 0;
m_B = 0;
}
//前置++,局部函数写法
//返回值注意是引用类型的,这样就是始终对一个数据进行操作,如果把&去掉,每次返回的都是一个新的
Preson& operator++()
{
++this->m_A; //这里this写不写无所谓
++this->m_B;
return *this;
}
//后置++,int为占位参数
Preson operator++(int)
{
Preson temp = *this;
m_A++;
m_B++;
return temp;
}
private:
int m_A;
int m_B;
};
ostream& operator<<(ostream& cout, Preson P)
{
cout << "m_A: " << P.m_A << " m_B: " << P.m_B;
return cout;
}
//前置++
//Preson& operator++(Preson& p)
//{
// ++p.m_A;
// ++p.m_B;
// return p;
//}
void test01()
{
Preson P1;
cout << P1++ << endl;
cout << P1 << endl;
cout << ++(++P1) << endl;
cout << P1 << endl;
}
int main()
{
test01();
system("pause");
return 0;
}