运算符重载
#include <iostream>
using namespace std;
class Per{
friend bool operator<(const Per &l, const Per &r);
friend const Per operator+(const Per &L,const Per &R);
friend Per &operator-=(Per &l , const Per &r);
private:
int a;
int b;
public:
Per(){}
Per(int a , int b):a(a),b(b){}
const Per operator-(const Per &p)const{
Per temp;
temp.a = a - p.a;
temp.b = b - p.b;
return temp;
}
bool operator>(const Per &p)const{
if(a > p.a && b > p.b)
return true;
else
return false;
}
Per &operator+=(const Per &p){
a += p.a;
b += p.b;
return *this;
}
bool operator==(const Per &p)const{
if(a == p.a && b == p.b)
return true;
else
return false;
}
void show(){
cout << "a = " << a << "\tb = " << b <<endl;
}
};
const Per operator+(const Per &L,const Per &R)
{
Per temp;
temp.a = L.a + R.a;
temp.b = L.b + R.b;
return temp;
}
bool operator<(const Per &l, const Per &r){
if(l.a < r.a && l.b < r.b)
return true;
else
return false;
}
Per &operator-=(Per &l , const Per &r){
l.a -= r.a;
l.b -= r.b;
return l;
}
int main()
{
Per p1(30,50);
Per p2(30,40);
// Per p3 = p1 + p2;
// p3.show();
// p3 = p2 - p1;
// p3.show();
// if(p1 < p2)
// cout << "p1 < p2" << endl;
// else if(p1 > p2)
// cout << "p1 > p2" << endl;
// else if(p1 == p2)
// cout << "p1 == p2" << endl;
// cout << (p1 > p2) << endl;
// cout << (p1 < p2) << endl;
// cout << (p1 == p2) << endl;
p1+=p2;
p1.show();
p2-=p1;
p2.show();
return 0;
}