实现关系运算符的重载
#include <iostream>
using namespace std;
class Person
{
friend bool operator>(const Person &p1, const Person &p2);
friend bool operator>=(const Person &p1, const Person &p2);
friend bool operator<(const Person &p1, const Person &p2);
friend bool operator<=(const Person &p1, const Person &p2);
friend bool operator==(const Person &p1, const Person &p2);
friend bool operator!=(const Person &p1, const Person &p2);
private:
int a;
int b;
public:
Person() {}
Person(int a, int b):a(a), b(b) {}
void show()
{
cout << "a = " << a << " b = " << b << endl;
}
};
bool operator>(const Person &p1, const Person &p2)
{
if (p1.a > p2.a && p1.b > p2.b)
{
return true;
}
else
return false;
}
bool operator>=(const Person &p1, const Person &p2)
{
if (p1.a >= p2.a && p1.b >= p2.b)
{
return true;
}
else
return false;
}
bool operator<(const Person &p1, const Person &p2)
{
if (p1.a < p2.a && p1.b < p2.b)
{
return true;
}
else
return false;
}
bool operator<=(const Person &p1, const Person &p2)
{
if (p1.a <= p2.a && p1.b <= p2.b)
{
return true;
}
else
return false;
}
bool operator==(const Person &p1, const Person &p2)
{
if (p1.a == p2.a && p1.b == p2.b)
{
return true;
}
else
return false;
}
bool operator!=(const Person &p1, const Person &p2)
{
if (p1.a != p2.a || p1.b != p2.b)
{
return true;
}
else
return false;
}
int main()
{
Person p1(12, 24);
Person p2(13, 24);
if (p1 > p2)
{
cout << "p1 > p2" << endl;
}
if (p1 >= p2)
{
cout << "p1 >= p2" << endl;
}
if (p1 < p2)
{
cout << "p1 < p2" << endl;
}
if (p1 <= p2)
{
cout << "p1 <= p2" << endl;
}
if (p1 == p2)
{
cout << "p1 == p2" << endl;
}
if (p1 != p2)
{
cout << "p1 != p2" << endl;
}
return 0;
}