【无标题】

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;
    }
复制代码
相关推荐
zone773932 分钟前
006:RAG 入门-面试官问你,RAG 为什么要切块?
后端·算法·面试
CoovallyAIHub3 小时前
OpenClaw 近 2000 个 Skills,为什么没有一个好用的视觉检测工具?
深度学习·算法·计算机视觉
CoovallyAIHub3 小时前
CVPR 2026 | 用一句话告诉 AI 分割什么——MedCLIPSeg 让医学图像分割不再需要海量标注
深度学习·算法·计算机视觉
CoovallyAIHub3 小时前
Claude Code 突然变成了 66 个专家?这个 5.8k Star 的开源项目,让我重新理解了什么叫"会用 AI"
深度学习·算法·计算机视觉
兆子龙4 小时前
前端哨兵模式(Sentinel Pattern):优雅实现无限滚动加载
前端·javascript·算法
CoovallyAIHub7 小时前
9个视觉语言模型工厂实测:Qwen 87.9%碾压全场,你的显卡能跑哪个?
算法
SparkX开源AI知识库8 小时前
手摸手带你安装OpenClaw并对接飞书
算法·架构
一语07168 小时前
3分钟搞懂深度学习AI:实操篇:卷积层
人工智能·算法
CoovallyAIHub1 天前
181小时视频丢给GPT-5,准确率只有15%——南大联合NVIDIA等五校发布多模态终身理解数据集
深度学习·算法·计算机视觉