【无标题】

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;
    }
复制代码
相关推荐
手写码匠17 分钟前
从零实现 Prompt 工程引擎:结构化提示、自动优化与多轮自省体系
人工智能·深度学习·算法·aigc
无限码力41 分钟前
阿里算法岗 0530笔试真题 - 多约束条件下的元素匹配统计
算法·阿里笔试真题·阿里机试真题·阿里算法岗笔试
lqqjuly1 小时前
MLA — 多头潜在注意力深度解析
深度学习·神经网络·算法
吴可可1231 小时前
SolidWorks草图转三维DWG技巧
算法
redaijufeng2 小时前
C++雾中风景7:闭包
c++·算法·风景
小欣加油2 小时前
leetcode287寻找重复数
数据结构·c++·算法·leetcode
尽兴-3 小时前
2.1 向量基础:Embedding、余弦相似度、欧氏距离、向量检索
算法·embedding·欧氏距离·向量检索·余弦相似度
Black蜡笔小新3 小时前
自动化AI算法训练服务器DLTM训推一体工作站赋能多行业智能化升级
人工智能·算法·自动化
怪兽学LLM3 小时前
LeetCode 438 找到字符串中所有字母异位词(Python 固定滑动窗口+字符计数解法)
python·算法·leetcode
满怀冰雪3 小时前
第04篇-双指针算法-从有序数组到回文判断的高频解法
java·算法