今天我们主要讲解关系运算符的重载。
关系运算符 == != 两个。
编译器提供的是基本类型的关系运算符,
而我们要使用自定义类型的关系运算符的时候,
就需要对其进行重载。
下面我们举例说明:
/****************************************************
* brief : == != 关系运算符重载
* author : shao
* date : 2020-03-13
* note : none
*
****************************************************/
#include <iostream>
#include <string>
using namespace std;
class Person{
public:
int p_age;
string p_name;
Person(string name, int age)
{
this->p_age = age;
this->p_name = name;
}
bool operator==(Person &p)
{
if(this->p_name == p.p_name && this->p_age == p.p_age)
return true;
return false;
}
bool operator!=(Person &p)
{
if(this->p_name == p.p_name && this->p_age == p.p_age)
return false;
return true;
}
};
void test01(void)
{
Person p1("老王", 20);
Person p2("老王", 20);
Person p3("小陈", 10);
if(p1 == p2)
{
cout << "p1,p2相同!" << endl;
}
else{
cout << "p1,p2不相同!" << endl;
}
if(p1 != p3)
{
cout << "p1,p3不相同!" << endl;
}
else{
cout << "p1,p3相同!" << endl;
}
}
int main(void)
{
test01();
return 0;
}
结果如下:
我们可以看到,关系运算符和其他运算符一样。
针对不同的自定义类型要做相应的重载动作。