我目前正在努力工作,其中包含几个自定义数据类型。我遇到了一个问题,列表抱怨我试图从相同数据类型的列表中删除自定义数据类型。
Error 3 error C2678: binary '==' : no operator found which takes a left-hand operand of type 'customer' (or there is no acceptable conversion) c:\program files (x86)\microsoft visual studio 10.0\vc\include\list 1194 1 Assignment 1 - Video Store MIS
相关代码在这里:
void customerCollection::removeCustomer(customer person)
{
customers.remove(person);
}
并且自定义数据类型确实定义了 == 运算符:
bool customer::operator==(customer &other) const
{
return (l_fullName == other.getName()) &&
(l_contactNumber == other.getNumber()) &&
(l_password == other.getPassword()) &&
(l_username == other.getUsername());
}
列表类型看不到重载运算符有什么原因吗?
customerCollection 和客户数据类型是程序的必需部分。
[编辑] 重载的运算符在头文件中定义为 public。