思维导图
完成关系运算符重载
#include <iostream>
using namespace std;
class Person
{
friend const Person operator+(const Person &L,const Person &R);//
friend bool 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 &p) const
// {
// Person temp;
// temp.a = a + p.a;
// temp.b = b + p.b;
// return temp;
// }
//成员函数实现>号运算符重载
// bool operator>(const Person &p) const
// {
// if(a>p.a && b>p.b)
// {
// return true;
// }
// else
// {
// return false;
// }
// }
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;
}
//全局函数实现>号运算符重载
bool operator>(const Person &L,const Person &R)
{
if(L.a>R.a && L.b>R.b)
{
return true;
}
else
{
return false;
}
}
int main()
{
Person p1(10,10);
Person p2(20,20);
Person p3 = p1 + p2;
p3.show();
if(p3>p2)
{
cout << "p3>p2" << endl;
}
return 0;
}