10_10C++

X-mid

10_10C++_第1张图片

#include 
using namespace std;
class Kun
{
    //算术运算符
    friend const Kun operator+(const Kun &k1,const Kun &k2);
    friend const Kun operator-(const Kun &k1,const Kun &k2);
    friend const Kun operator*(const Kun &k1,const Kun &k2);
    friend const Kun operator/(const Kun &k1,const Kun &k2);
    //关系运算符
    friend bool operator==(const Kun &k1,const Kun &k2);
    friend bool operator>(const Kun &k1,const Kun &k2);
    friend bool operator<(const Kun &k1,const Kun &k2);
    friend bool operator!=(const Kun &k1,const Kun &k2);
    //赋值运算符
    friend Kun &operator+=(Kun &k1,const Kun &k2);
    friend Kun &operator-=(Kun &k1,const Kun &k2);
    friend Kun &operator*=(Kun &k1,const Kun &k2);
    friend Kun &operator/=(Kun &k1,const Kun &k2);

private:
     int a;
     int b;
public:
    Kun()
    {}
    Kun(int a,int b):a(a),b(b)
    {}
    void show()
    {
        cout << "a=" << a << endl << "b=" << b << endl;
    }
    //算术运算符
//    const Kun operator+( const Kun &k) const
//    {
//        Kun temp;
//        temp.a = a + k.a;
//        temp.b = b + k.b;
//        return temp;
//    }
//    const Kun operator-( const Kun &k) const
//    {
//        Kun temp;
//        temp.a = a - k.a;
//        temp.b = b - k.b;
//        return temp;
//    }
//    const Kun operator*( const Kun &k) const
//    {
//        Kun temp;
//        temp.a = a * k.a;
//        temp.b = b * k.b;
//        return temp;
//    }
//    const Kun operator/( const Kun &k) const
//    {
//        Kun temp;
//        temp.a = a / k.a;
//        temp.b = b / k.b;
//        return temp;
//    }
//    const Kun operator%( const Kun &k) const
//    {
//        Kun temp;
//        temp.a = a % k.a;
//        temp.b = b % k.b;
//        return temp;
//    }
    //关系运算符
//    bool operator==(const Kun &k) const
//    {
//        if(a == k.a && b == k.b)
//        {
//            return true;
//        }else
//            return false;
//    }
//    bool operator>(const Kun &k) const
//    {
//        if(a > k.a && b > k.b){
//            return true;
//        }else
//            return false;
//    }
//    bool operator<(const Kun &k) const
//    {
//        if(a < k.a && b < k.b){
//            return true;
//        }else
//            return false;
//    }
//    bool operator!=(const Kun &k) const
//    {
//        if(a != k.a && b != k.b){
//            return true;
//        }else
//            return false;
//    }
    //赋值运算符
//    Kun &operator+=(const Kun &k2)
//    {
//        a += k2.a;
//        b += k2.b;
//        return *this;
//    }
//    Kun &operator-=(const Kun &k2)
//    {
//        a -= k2.a;
//        b -= k2.b;
//        return *this;
//    }
//    Kun &operator=(const Kun &k2)
//    {
//      if(this!=&k2){
//            a = k2.a;
//            b = k2.b;
//      }
//        return *this;
//    }
//    Kun &operator*=(const Kun &k2)
//    {
//        a *= k2.a;
//        b *= k2.b;
//        return *this;
//    }
//    Kun &operator/=(const Kun &k2)
//    {
//        a /= k2.a;
//        b /= k2.b;
//        return *this;
//    }
};

//算术运算符
const Kun operator+(const Kun &k1,const Kun &k2)
{
    Kun temp;
    temp.a = k1.a + k2.a;
    temp.b = k1.b + k2.b;
    return temp;
}
const Kun operator-(const Kun &k1,const Kun &k2)
{
    Kun temp;
    temp.a = k1.a - k2.a;
    temp.b = k1.b - k2.b;
    return temp;
}
const Kun operator*(const Kun &k1,const Kun &k2)
{
    Kun temp;
    temp.a = k1.a * k2.a;
    temp.b = k1.b * k2.b;
    return temp;
}
const Kun operator/(const Kun &k1,const Kun &k2)
{
    Kun temp;
    temp.a = k1.a / k2.a;
    temp.b = k1.b / k2.b;
    return temp;
}
//关系运算符
bool operator==(const Kun &k1,const Kun &k2)
{
       if(k1.a == k2.a && k1.b == k2.b)
       {
           return true;
       }else
           return false;
}
bool operator>(const Kun &k1,const Kun &k2)
{
       if(k1.a >k2.a && k1.b > k2.b)
       {
           return true;
       }else
           return false;
}
bool operator<(const Kun &k1,const Kun &k2)
{
       if(k1.a < k2.a && k1.b < k2.b)
       {
           return true;
       }else
           return false;
}
bool operator!=(const Kun &k1,const Kun &k2)
{
       if(k1.a != k2.a && k1.b != k2.b)
       {
           return true;
       }else
           return false;
}
//赋值运算符
Kun &operator+=(Kun &k1,const Kun &k2)
{
    k1.a += k2.a;
    k1.b += k2.b;
    return k1;
}
Kun &operator-=(Kun &k1,const Kun &k2)
{
    k1.a -= k2.a;
    k1.b -= k2.b;
    return k1;
}
Kun &operator*=(Kun &k1,const Kun &k2)
{
    k1.a *= k2.a;
    k1.b *= k2.b;
    return k1;
}
Kun &operator/=(Kun &k1,const Kun &k2)
{
    k1.a /= k2.a;
    k1.b /= k2.b;
    return k1;
}
int main()
{
    Kun k(10,10);
    Kun kk(10,10);
    Kun 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;
}

你可能感兴趣的:(c++,开发语言)