我正在尝试重载我创建的类中的运算符<<
,该类比较两个字符串,无论外壳如何。这是我的bool运算符
friend bool operator <<(const string& member, const string& player) {
return toLowerCase(member) == toLowerCase(player);
}
程序在我的代码
中返回错误current->name << member
现在current是指向包含字符串名称的节点的指针,member是在提示用户时通过引用传递的字符串。我得到的错误是
invalid operands to binary expression('string'(aka'basic_string<char>') and 'string')
答案 0 :(得分:1)
错误消息表明它没有收到你的重载,而是试图在string
上使用内置的bitshift运算符(当然也失败了)。鉴于您提供的信息,我不确定为什么。
无论如何,一个更好的想法是使用非成员,非运算符compare()
函数 - 使用operator<<
来比较字符串只会混淆任何看着的人的地狱你的代码(即使你,在几年的时间内)。
答案 1 :(得分:0)
将该声明移出您的班级,然后移除friend
关键字:
bool operator <<(const string& member, const string& player)
{
return toLowerCase(member) == toLowerCase(player);
}