
- using namespace std;
- class Per
- {
- friend const Per operator-(const Per &L,const Per &R);
- friend bool operator<(const Per &L,const Per &R);
- int a;
- int b;
- public:
- //有参构造
- Per(int a,int b):a(a),b(b)
- {
-
- }
- //无参构造
- Per(){}
- //+运算符重载
- const Per operator+(const Per &p) const
- {
- Per temp;
- temp.a=a+p.a;
- temp.b=b+p.b;
- return temp;
- }
- //*运算符重载
- const Per operator*(const Per &p) const
- {
- Per temp;
- temp.a=a*p.a;
- temp.b=b*p.b;
- return temp;
- }
- // /运算符重载
- const Per operator/(const Per &p) const
- {
- Per temp;
- temp.a=a/p.a;
- temp.b=b/p.b;
- return temp;
- }
- //%运算符重载
- const Per operator%(const Per &p) const
- {
- Per temp;
- temp.a=a%p.a;
- temp.b=b%p.b;
- return temp;
- }
- //+=重载
- Per &operator+=(const Per &p)
- {
- a+=p.a;
- b+=p.b;
- return *this;
- }
- //-=重载
- Per &operator-=(const Per &p)
- {
- a-=p.a;
- b-=p.b;
- return *this;
- }
- //*=重载
- Per &operator*=(const Per &p)
- {
- a*=p.a;
- b*=p.b;
- return *this;
- }
- // /=重载
- Per &operator/=(const Per &p)
- {
- a/=p.a;
- b/=p.b;
- return *this;
- }
- //%=重载
- Per &operator%=(const Per &p)
- {
- a%=p.a;
- b%=p.b;
- return *this;
- }
- //>重载
- bool operator>(const Per &p)
- {
- if(a>p.a&&b>p.b)
- {
- return true;
- }
- else
- return false;
- }
- //>=重载
- bool operator>=(const Per &p)
- {
- if(a>=p.a&&b>=p.b)
- {
- return true;
- }
- else
- return false;
- }
- //<=重载
- bool operator<=(const Per &p)
- {
- if(a<=p.a&&b<=p.b)
- {
- return true;
- }
- else
- return false;
- }
- //==重载
- bool operator==(const Per &p)
- {
- if(a==p.a&&b==p.b)
- {
- return true;
- }
- else
- return false;
- }
- //!=重载
- bool operator!=(const Per &p)
- {
- if(a!=p.a&&b!=p.b)
- {
- return true;
- }
- else
- return false;
- }
- void show()
- {
- cout << a << b << endl;
- }
- };
- //<重载
- bool operator<(const Per &L,const Per &R)
- {
- if(L.a
- {
- return true;
- }
- else
- return false;
- }
- //-重载
- 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;
- }