C++关系运算符重载有==和!=两种形式
因为是关系运算符重载,返回值类型需要用bool类型
#include<iostream>
using namespace std;
class Person
{
friend ostream& operator<<(ostream& cout, Person p);
public:
Person(){}
Person(string name,int age):m_Name(name),m_Age(age) {}
//关系运算符重载 ==
bool operator==(const Person &p) {
if (this->m_Name == p.m_Name && this->m_Age == p.m_Age)
return true;
else
return false;
}
//关系运算符重载!=
bool operator!=(const Person &p) {
if (this->m_Name != p.m_Name && this->m_Age != p.m_Age)
return true;
else
return false;
}
private:
string m_Name;
int m_Age;
};
void test01()
{
Person p("aaa", 0);
Person p2("aaa", 0);
if (p == p2)
cout << "p1和p2是相等的!" << endl;
else
cout << "p1和p2是不相等的!" << endl;
if (p != p2)
cout << "p1和p2是不相等的!" << endl;
else
cout << "p1和p2是相等的!" << endl;
}
int main()
{
test01();
return 0;
}