重载操作符可以选择两种重载方式:
成员函数重载(一个参数)
全局函数重载(两个参数)
#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+(const T& tmp){
T t;
t.a = this->a + tmp.a;
t.b = this->b + tmp.b;
return t;
}
};
// 全局函数重载 - 号
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);
T t2 = T(3,4);
T t3 = t1 + t2;
cout<<t3.a<<" "<<t3.b<<endl;
T t4 = T(7,8);
T t5 = T(5,6);
T t6 = t4 - t5;
cout<<t6.a<<" "<<t6.b<<endl;
return 0;
}