C++基础知识4

思维导图

完成关系运算符重载,实现成员函数和全局函数的版本。

#include <iostream>

using namespace std;

class Computer
{
    friend bool operator>(const Computer &L,const Computer &R);//声明友元全局函数
    friend bool operator<(const Computer &L,const Computer &R);
    friend bool operator==(const Computer &L,const Computer &R);
    friend bool operator>=(const Computer &L,const Computer &R);
    friend bool operator<=(const Computer &L,const Computer &R);
    friend bool operator!=(const Computer &L,const Computer &R);
private:
    int a;
    int b;
public:
    Computer()//无参构造函数
    {}
    Computer(int a,int b):a(a),b(b)//有参构造函数
    {}
//    bool operator>(const Computer &R) const//成员函数实现大于关系运算符重载
//    {
//        if(a>R.a && b>R.b)
//        {
//            return true;
//        }
//        else
//        {
//            return false;
//        }
//    }
//    bool operator<(const Computer &R) const//成员函数实现小于关系运算符重载
//    {
//        if(a<R.a && b<R.b)
//        {
//            return true;
//        }
//        else
//        {
//            return false;
//        }
//    }
//    bool operator==(const Computer &R) const//成员函数实现等于关系运算符重载
//    {
//        if(a==R.a && b==R.b)
//        {
//            return true;
//        }
//        else
//        {
//            return false;
//        }
//    }
//    bool operator>=(const Computer &R) const//成员函数实现大于等于关系运算符重载
//    {
//        if(a>=R.a && b>=R.b)
//        {
//            return true;
//        }
//        else
//        {
//            return false;
//        }
//    }
//    bool operator<=(const Computer &R) const//成员函数实现小于等于关系运算符重载
//    {
//        if(a<=R.a && b<=R.b)
//        {
//            return true;
//        }
//        else
//        {
//            return false;
//        }
//    }
//    bool operator!=(const Computer &R) const//成员函数实现小于关系运算符重载
//    {
//        if(a!=R.a && b!=R.b)
//        {
//            return true;
//        }
//        else
//        {
//            return false;
//        }
//    }
    void show()
    {
        cout << "a = " << a << " " << "b = " << b << endl;
    }
};
bool operator>(const Computer &L,const Computer &R)//全局函数实现大于关系运算符重载
{
    if(L.a>R.a && L.b>R.b)
    {
        return true;
    }
    else
    {
        return false;
    }
}
bool operator<(const Computer &L,const Computer &R)//全局函数实现小于关系运算符重载
{
    if(L.a<R.a && L.b<R.b)
    {
        return true;
    }
    else
    {
        return false;
    }
}
bool operator==(const Computer &L,const Computer &R)//全局函数实现等于关系运算符重载
{
    if(L.a==R.a && L.b==R.b)
    {
        return true;
    }
    else
    {
        return false;
    }
}
bool operator>=(const Computer &L,const Computer &R)//全局函数实现大于等于关系运算符重载
{
    if(L.a>=R.a && L.b>=R.b)
    {
        return true;
    }
    else
    {
        return false;
    }
}
bool operator<=(const Computer &L,const Computer &R)//全局函数实现小于等于关系运算符重载
{
    if(L.a<=R.a && L.b<=R.b)
    {
        return true;
    }
    else
    {
        return false;
    }
}
bool operator!=(const Computer &L,const Computer &R)//全局函数实现不等于关系运算符重载
{
    if(L.a!=R.a && L.b!=R.b)
    {
        return true;
    }
    else
    {
        return false;
    }
}
int main()
{
    Computer c1(3,3);
    Computer c2(10,10);
    if(c2>c1)//注意:全局函数和成员函数实现关系运算符的重载只能选择其中一个!!!
    {
        cout << "c2>c1" << endl;
    }
    if(c1<c2)
    {
        cout << "c1<c2" << endl;
    }
    Computer c3(10,10);
    if(c2==c3)
    {
        cout << "c2=c3" << endl;
    }
    Computer c4(100,100);
    if(c3!=c4)
    {
        cout << "c3!=c4" << endl;
    }
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值