gpt4 book ai didi

c++ - 从自定义数据类型列表中删除时出现 C2678 错误

转载 作者:行者123 更新时间:2023-11-28 00:56:50 25 4
gpt4 key购买 nike

我目前正在努力完成一项作业,其中包含多种自定义数据类型。我遇到了一个问题,列表提示我正在尝试从相同数据类型的列表中删除自定义数据类型。

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。

最佳答案

bool customer::operator==(customer &other) const

尝试将其更改为

bool customer::operator==(const customer &other) const

customers 集合的代码可能将 const 限定的客户传递给相等运算符。至少,它更加地道(和合乎逻辑)。

关于c++ - 从自定义数据类型列表中删除时出现 C2678 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10651439/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com