#include <iostream>
using namespace std;
//成员函数版本实现算术运算符的重载
//全局函数版本实现算术运算符的重载
class Person
{
friend const Person operator-(const Person &L,const Person &R);
private:
int a;
int b;
public:
Person() {}
Person(int a, int b):a(a),b(b)
{}
//成员函数实现 + 号 运算符重载
const Person operator+(const Person &R) const
{
Person temp;
temp.a = a + R.a;
temp.b = b +R.b;
return temp;
}
void show()
{
cout << "a = " << a << " b = " << b << endl;
}
};
const Person operator-(const Person &L,const Person &R)
{
Person temp;
temp.a = L.a - R.a;
temp.b = L.b - R.b;
return temp;
}
int main()
{
Person p1(3,6);
Person p2(4,7);
//简化版本
Person p3 = p1 + p2; //成员函数实现的本质 --> Person p3 = p1.operator+(p2)
p3.show();
Person p4 = p2 - p1;
p4.show();
return 0;
}