#include <iostream>
using namespace std;
class Per
{//算术运算符friend const Per operator+(const Per &k1,const Per &k2);friend const Per operator-(const Per &k1,const Per &k2);friend const Per operator*(const Per &k1,const Per &k2);friend const Per operator/(const Per &k1,const Per &k2);//关系运算符friend bool operator==(const Per &k1,const Per &k2);friend bool operator>(const Per &k1,const Per &k2);friend bool operator<(const Per &k1,const Per &k2);friend bool operator!=(const Per &k1,const Per &k2);//赋值运算符friend Per &operator+=(Per &k1,const Per &k2);friend Per &operator-=(Per &k1,const Per &k2);friend Per &operator*=(Per &k1,const Per &k2);friend Per &operator/=(Per &k1,const Per &k2);private:int a;int b;
public:Per(int a=0,int b=0):a(a),b(b){};void show(){cout << "a=" << a << endl << "b=" << b << endl;}//算术运算符
// const Per operator+( const Per &k) const
// {
// Per temp;
// temp.a = a + k.a;
// temp.b = b + k.b;
// return temp;
// }
// const Per operator-( const Per &k) const
// {
// Per temp;
// temp.a = a - k.a;
// temp.b = b - k.b;
// return temp;
// }
// const Per operator*( const Per &k) const
// {
// Per temp;
// temp.a = a * k.a;
// temp.b = b * k.b;
// return temp;
// }
// const Per operator/( const Per &k) const
// {
// Per temp;
// temp.a = a / k.a;
// temp.b = b / k.b;
// return temp;
// }
// const Per operator%( const Per &k) const
// {
// Per temp;
// temp.a = a % k.a;
// temp.b = b % k.b;
// return temp;
// }//关系运算符
// bool operator==(const Per &k) const
// {
// if(a == k.a && b == k.b)
// {
// return true;
// }else
// return false;
// }
// bool operator>(const Per &k) const// {// if(a > k.a && b > k.b){// return true;// }else// return false;// }// bool operator<(const Per &k) const// {// if(a < k.a && b < k.b){// return true;// }else// return false;// }// bool operator!=(const Per &k) const// {// if(a != k.a && b != k.b){// return true;// }else// return false;// }//赋值运算符// Per &operator+=(const Per &k2)// {// a += k2.a;// b += k2.b;// return *this;// }// Per &operator-=(const Per &k2)// {// a -= k2.a;// b -= k2.b;// return *this;// }// Per &operator=(const Per &k2)// {// if(this!=&k2){// a = k2.a;// b = k2.b;// }// return *this;// }// Per &operator*=(const Per &k2)// {// a *= k2.a;// b *= k2.b;// return *this;// }// Per &operator/=(const Per &k2)// {// a /= k2.a;// b /= k2.b;// return *this;// }};//算术运算符const Per operator+(const Per &k1,const Per &k2){Per temp;temp.a = k1.a + k2.a;temp.b = k1.b + k2.b;return temp;}const Per operator-(const Per &k1,const Per &k2){Per temp;temp.a = k1.a - k2.a;temp.b = k1.b - k2.b;return temp;}const Per operator*(const Per &k1,const Per &k2){Per temp;temp.a = k1.a * k2.a;temp.b = k1.b * k2.b;return temp;}const Per operator/(const Per &k1,const Per &k2){Per temp;temp.a = k1.a / k2.a;temp.b = k1.b / k2.b;return temp;}//关系运算符bool operator==(const Per &k1,const Per &k2){if(k1.a == k2.a && k1.b == k2.b){return true;}elsereturn false;}bool operator>(const Per &k1,const Per &k2){if(k1.a >k2.a && k1.b > k2.b){return true;}elsereturn false;}bool operator<(const Per &k1,const Per &k2){if(k1.a < k2.a && k1.b < k2.b){return true;}elsereturn false;}bool operator!=(const Per &k1,const Per &k2){if(k1.a != k2.a && k1.b != k2.b){return true;}elsereturn false;}//赋值运算符Per &operator+=(Per &k1,const Per &k2){k1.a += k2.a;k1.b += k2.b;return k1;}Per &operator-=(Per &k1,const Per &k2){k1.a -= k2.a;k1.b -= k2.b;return k1;}Per &operator*=(Per &k1,const Per &k2){k1.a *= k2.a;k1.b *= k2.b;return k1;}Per &operator/=(Per &k1,const Per &k2){k1.a /= k2.a;k1.b /= k2.b;return k1;}int main(){Per k(10,10);Per kk(10,10);Per kkk = k + kk;kkk.show();if(kkk == kk){cout << "左右操作数想等" << endl;}else if(kkk > kk){cout << "左操作数大于右操作数" << endl;}else if(kkk < kk){cout << "左操作数小于右操作数" << endl;}else{cout << "不知道" << endl;}kkk+=kk;kkk.show();kkk-=kk;kkk.show();return 0;}