C++关系运算符重载
-
为什么重载关系运算符?
因为要直接对比类中的对象。 -
重载关系运算符应该在哪里?
由于是对比类中的对象,而每个类应该是不一样的,所以重载关系运算符定义应该在类中。 -
如何定义关系运算符
众所周知,关系运算符就是true flase两种,所以,返回值类型应该是bool类型。
#include<iostream>
#include<string>
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;
}
}
bool operator!=(Person & p)
{
if (this->m_Name == p.m_Name && this->m_Age == p.m_Age)
{
return false;
}
else
{
return true;
}
}
//定义名字和年龄
string m_Name;
int m_Age;
};
void test01()
{
//int a = 0;
//int b = 0;
Person a("Tony", 18);
Person b("Annie", 18);
if (a == b)
{
cout << "a和b相等" << endl;
}
else
{
cout << "a和b不相等" << endl;
}
if (a != b)
{
cout << "a和b不相等" << endl;
}
else
{
cout << "a和b相等" << endl;
}
}
int main() {
test01();
system("pause");
return 0;
}