运算符重载
#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;
}



![[羊城杯 2020]black cat - 文件隐写+RCE(hash_hmac绕过)](https://img-blog.csdnimg.cn/d9a8ccc3557e42848e183427d9f5286f.png#pic_center)
















