++操作符:
分为 a++ 和 ++a
它们的区别在于 返回值类型 和 参数 以及 返回值
#include<iostream>
#include<cstdio>
using namespace std;
class T{
public:
int a;
int b;
public:
T(){
this->a = 0;
this->b = 0;
}
T(int a, int b){
this->a = a;
this->b = b;
}
// 成员函数重载 ++ 前置递增
T& operator++(){ // 返回值为 引用
this->a++;
this->b++;
return *this;
}
// 成员函数重载 ++ 后置递增
T operator++(int){ // 占位参数 返回值为 一个值
T tmp = *this;
// 先加
this->a++;
this->b++;
return tmp;
}
};
// 全局函数重载 - 号
T operator-(const T& left, const T& right){
T t;
t.a = left.a - right.a;
t.b = left.b - right.b;
return t;
}
int main()
{
T t1 = T(1,2);
++t1;
cout<<t1.a<<" "<<t1.b<<endl;
T t2 = T(1,2);
cout<<t2.a<<" "<<t2.b<<endl;
return 0;
}