【无标题】

cpp 复制代码
#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;
           }else
               return false;
    }
    bool operator>(const Per &k1,const Per &k2)
    {
           if(k1.a >k2.a && k1.b > k2.b)
           {
               return true;
           }else
               return false;
    }
    bool operator<(const Per &k1,const Per &k2)
    {
           if(k1.a < k2.a && k1.b < k2.b)
           {
               return true;
           }else
               return false;
    }
    bool operator!=(const Per &k1,const Per &k2)
    {
           if(k1.a != k2.a && k1.b != k2.b)
           {
               return true;
           }else
               return 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;
    }
复制代码
相关推荐
不是老弟12 分钟前
rwqsd
数据结构·c++·算法
小龙报15 分钟前
《C语言疑难点 --- 字符函数和字符串函数专题(上)》
c语言·开发语言·c++·算法·学习方法·业界资讯·visual studio
zbh06041 小时前
洛谷P5788 【模板】单调栈——单调栈
数据结构·算法
moonsims2 小时前
Z3 Technology-适用于无人机和机器人的 4K 高清摄像机和视频编码器
算法
摘星编程2 小时前
深入浅出 Tokio 源码:掌握 Rust 异步编程的底层逻辑
网络·算法·rust·系统编程·tokio
Hard_Liquor2 小时前
Datawhale秋训营-“大运河杯”数据开发应用创新大赛
人工智能·深度学习·算法
liu****2 小时前
笔试强训(八)
开发语言·算法·1024程序员节
草莓工作室2 小时前
数据结构14:查找
数据结构·算法
屈冠成4 小时前
C语言数组:编辑世界的坚固桥梁
c语言·开发语言·算法
应用市场4 小时前
STM32卡尔曼滤波算法详解与实战应用
人工智能·stm32·算法