#include <iostream>
using namespace std;
class Person
{
friend bool operator>(const Person &L,const Person &R);//全局函数运算符-重载
friend bool operator>=(const Person &L,const Person &R);//全局函数运算符-重载
friend bool operator<(const Person &L,const Person &R);//全局函数运算符-重载
friend bool operator<=(const Person &L,const Person &R);//全局函数运算符-重载
friend bool operator==(const Person &L,const Person &R);//全局函数运算符-重载
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();
};
bool operator>(const Person &L,const Person &R)//全局函数运算符-重载
{
Person temp;
if(L.a > R.a && L.b > R.b)
{
return true;
}
else
return false;
}
bool operator>=(const Person &L,const Person &R)//全局函数运算符-重载
{
Person temp;
if(L.a >= R.a && L.b >= R.b)
{
return true;
}
else
return false;
}
bool operator<(const Person &L,const Person &R)//全局函数运算符-重载
{
Person temp;
if(L.a < R.a && L.b < R.b)
{
return true;
}
else
return false;
}
bool operator<=(const Person &L,const Person &R)//全局函数运算符-重载
{
Person temp;
if(L.a <= R.a && L.b <= R.b)
{
return true;
}
else
return false;
}
bool operator==(const Person &L,const Person &R)//全局函数运算符-重载
{
Person temp;
if(L.a == R.a && L.b == R.b)
{
return true;
}
else
return false;
}
void Person :: show()
{
cout << "--------------"<< endl;
cout << "A= " << a << endl;
cout << "B= " << b << endl;
cout << "--------------"<< endl;
}
int main()
{
Person k1(222,111);
Person k2(111,222);
//Person k3 = k1 + k2;//全局函数运算符-重载
//Person k3 = k1 > k2;//全局函数运算符-重载
if(k1 == k2)
{
cout << "k1 = k2" << endl;
}
else if(k1 > k2)
{
cout << "k1 > k2" << endl;
}
else if(k1 >= k2)
{
cout << "k1 >= k2" << endl;
}
else if(k1 < k2)
{
cout << "k1 < k2" << endl;
}
else if(k1 <= k2)
{
cout << "k1 <= k2" << endl;
}
else
{
cout << "k1 != k2" << endl;
}
//k3.show();
//Person k4 = k1.operator+(k2);//成员函数运算符-重载
//k4.show();
return 0;
}
20230824-类对象关系运算符</<=/==/>/>=的运算
最新推荐文章于 2024-07-24 08:30:00 发布