严重性 代码 说明 项目 文件 行 禁止显示状态
错误 C2678 二进制“==”: 没有找到接受“const _Ty”类型的左操作数的运算符(或没有可接受的转换) List容器 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include\list 1594
调用remove函数时需要重载==运算符,重载==运算符时类内重载报错,需要类外重载。
类内重载
class Person
{
public:
Person(string name,int age,int height)
{
this->m_Nmae = name;
this->m_Age = age;
this->m_Height = height;
}
//friend bool operator==(const Person&, const Person&);
bool operator==(const Person& p)
{
if (this->m_Nmae == p.m_Nmae && this->m_Age == p.m_Age && this->m_Height == p.m_Height)
{
return true;
}
return false;
}
string m_Nmae;
int m_Age;
int m_Height;
};
类外重载
bool operator==(const Person& p1, const Person&p2)
{
if (p1.m_Nmae == p2.m_Nmae && p1.m_Age == p2.m_Age && p1.m_Height == p2.m_Height)
{
return true;
}
return false;
}