1010hw

本文详细描述了一个名为Per的C++类,重点介绍了其构造函数和各种算术及比较运算符的重载实现,包括加法(+),乘法(*),除法(/),取模(%),自增/减(-)以及赋值运算符(&#43;=,*=,/=,%=)和比较运算符(>,>=,<=,==,!=)。
摘要由CSDN通过智能技术生成

using namespace std;
class Per
{
    friend const Per operator-(const Per &L,const Per &R);
    friend bool operator<(const Per &L,const Per &R);
    int a;
    int b;
public:
    //有参构造
    Per(int a,int b):a(a),b(b)
    {

    }
    //无参构造
    Per(){}
    //+运算符重载
    const Per operator+(const Per &p) const
    {
        Per temp;
        temp.a=a+p.a;
        temp.b=b+p.b;
        return temp;
    }
    //*运算符重载
    const Per operator*(const Per &p) const
    {
        Per temp;
        temp.a=a*p.a;
        temp.b=b*p.b;
        return temp;
    }
    //  /运算符重载
    const Per operator/(const Per &p) const
    {
        Per temp;
        temp.a=a/p.a;
        temp.b=b/p.b;
        return temp;
    }
    //%运算符重载
    const Per operator%(const Per &p) const
    {
        Per temp;
        temp.a=a%p.a;
        temp.b=b%p.b;
        return temp;
    }
    //+=重载
    Per &operator+=(const Per &p)
    {
        a+=p.a;
        b+=p.b;
        return *this;
    }
    //-=重载
    Per &operator-=(const Per &p)
    {
        a-=p.a;
        b-=p.b;
        return *this;
    }
    //*=重载
    Per &operator*=(const Per &p)
    {
        a*=p.a;
        b*=p.b;
        return *this;
    }
    //  /=重载
    Per &operator/=(const Per &p)
    {
        a/=p.a;
        b/=p.b;
        return *this;
    }
    //%=重载
    Per &operator%=(const Per &p)
    {
        a%=p.a;
        b%=p.b;
        return *this;
    }
    //>重载
    bool operator>(const Per &p)
    {
        if(a>p.a&&b>p.b)
        {
            return true;
        }
        else
            return false;
    }
    //>=重载
    bool operator>=(const Per &p)
    {
        if(a>=p.a&&b>=p.b)
        {
            return true;
        }
        else
            return false;
    }
    //<=重载
    bool operator<=(const Per &p)
    {
        if(a<=p.a&&b<=p.b)
        {
            return true;
        }
        else
            return false;
    }
    //==重载
    bool operator==(const Per &p)
    {
        if(a==p.a&&b==p.b)
        {
            return true;
        }
        else
            return false;
    }
    //!=重载
    bool operator!=(const Per &p)
    {
        if(a!=p.a&&b!=p.b)
        {
            return true;
        }
        else
            return false;
    }
    void show()
    {
        cout << a << b << endl;
    }
};
//<重载
bool operator<(const Per &L,const Per &R)
{
    if(L.a<R.a&&L.b<R.b)
    {
        return true;
    }
    else
        return false;
}
//-重载
const Per operator-(const Per &L,const Per &R)
{
    Per temp;
    temp.a=L.a-R.a;
    temp.b=L.b-R.b;
    return temp;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值