类和对象–C++运算符重载
C++ 预定义的运算符,只能用于基本数据类型的运算,不能用于对象的运算
如何使运算符能用于对象之间的运算呢
关系运算符重载
关系运算符包括:
1.<
2.<=
3.>
4.>=
5.==
6.!=
当我们想比较两个事物之间的关系
一般方法
int main(){
int a = 10;
int b = 10;
if (a == b) {
cout << " a等于b " << endl;
}
else
cout << " a不等于b" << endl;
system("pause");
return 0;
}
运行结果:
但想比较两个对象之间的大小时,则要运用关系运算符的重载operator==
代码:
#include <iostream>
using namespace std;
class Person {
public:
Person(string name, int age) {
this->m_Name = name;
this->m_Age = age;
};
bool operator==(Person& p) {
if (this->m_Name == p.m_Name && this->m_Age == p.m_Age) {
return true;
}
else
return false;
}
string m_Name;
int m_Age;
};
void test(){
Person p1("阿董", 18);
Person p2("阿董", 18);
if (p1 == p2){
cout << " p1 等于 p2 " << endl;
}
else
cout << " p1 不等于 p2 " << endl;
}
int main(){
test();
system("pause");
return 0;
}
运行结果:
注意
if (this->m_Name == p.m_Name && this->m_Age == p.m_Age)
//如果自身的m_Name等于传参传进来的m_Name 且 自身的m_Age等于传参传进来的m_Age
其余5种关系运算符也同理