运算符重载——关系运算符重载

写在前面:

1)本篇涉及内容:

  • 关系运算符重载的应用场景
  • 实现关系运算符重载的代码

2)关系运算符包含:<,>,==,!=

应用场景:

类中实现关系运算符重载,则可以实现自定义数据类型之间的比较,比较内容根据需求来.

C++的类中重载“==”就相当于Java的类中重写equals方法

实现关系运算符重载:
class Person {

public:

    Person(int m_Age, string name, int idCard) : m_Age(m_Age), name(name), idCard(idCard) {}

    int m_Age;
    string name;
    int idCard;

    //根据一个对象的身份证来判断Person对象是否是同一个对象
    bool operator==(Person &p) {
        return p.idCard == this->idCard;
    }

    bool operator!=(Person &p) {
        return p.idCard != this->idCard;
    }

    //根据年龄来判断Person对象的大小
    bool operator>(Person &p) {
        return this->m_Age > p.m_Age;
    }

    bool operator<(Person &p) {
        return this->m_Age < p.m_Age;
    }

};

int main() {

    Person p1(18, "与可", 1001);
    Person p2(18, "与可", 1002);
    Person p3(19, "莫莫", 1003);

    cout << (int) (p1 == p2) << endl;// 打印0
    cout << (int) (p1 > p3) << endl;// 打印0
    cout << (int) (p1 < p3) << endl;// 打印1
    cout << (int) (p1 != p2) << endl;// 打印1


    return 0;
}

核心代码:

    //根据一个对象的身份证来判断Person对象是否是同一个对象
    bool operator==(Person &p) {
        return p.idCard == this->idCard;
    }

    bool operator!=(Person &p) {
        return p.idCard != this->idCard;
    }

    //根据年龄来判断Person对象的大小
    bool operator>(Person &p) {
        return this->m_Age > p.m_Age;
    }

    bool operator<(Person &p) {
        return this->m_Age < p.m_Age;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值