写在前面:
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;
}