【无标题】

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;
    }
复制代码
相关推荐
Jerry41 分钟前
LeetCode 151. 反转字符串中的单词
算法
a1117763 小时前
LM 算法迭代过程动画演示(SLAM)
算法
头茬韭菜3 小时前
Context 的生死抉择:四层压缩、截断算法与 Session Memory
算法·ai
Jerry3 小时前
LeetCode 541. 反转字符串 II
算法
Jerry4 小时前
LeetCode 344. 反转字符串
算法
搞科研的小刘选手4 小时前
【香港大学主办&IEEE出版】第六届计算机视觉、应用与算法国际学术会议(CVAA 2026)
算法·计算机视觉·应用·学术会议
Java小白笔记4 小时前
Codex config.toml配置实战指南
人工智能·算法·chatgpt·ai编程·集成学习
王老师青少年编程4 小时前
2026年6月GESP真题及题解(C++七级):消消乐
数据结构·c++·算法·真题·gesp·2026年6月
z小猫不吃鱼4 小时前
模型剪枝经典论文精读:Pruning Filters for Efficient ConvNets
算法·机器学习·剪枝
Fox爱分享6 小时前
字节二面:1000瓶酒,有一瓶是毒药,多少只老鼠可以查出来?
算法·面试·程序员