尝试使用“==”和“!=”与字符串数组和字符进行比较时出现此错误。这是否意味着我需要做一些运算符重载?如果是这样,任何人都可以指出我在如何做到这一点(或其他方法)的正确方向,因为我还不太熟悉运算符重载。
bool legalMove(string list[][7], int row_start,
int column_start, int row_end,int column_end)
{
if(list[row_start][column_start] == 'S' && list[row_end][column_end] != ' ')
{
if((row_end == row_start + 1 && column_start == column_end) ||
(row_start == row_end && (column_end == column_start + 1
|| column_end == column_start - 1)))
{
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
答案 0 :(得分:0)
您正在使用std::string
将char
与''
进行比较。尝试改为
if(list[row_start][column_start] == "S" && list[row_end][column_end] != " "){ }
如果您使用的是std::string
,那么这是一种标准类型,您将无法重载operator==
。有关std::string
的参考,请参阅here。