使用2d数组获取错误“不匹配运算符==”

时间:2013-03-29 19:59:46

标签: arrays overloading operator-keyword

尝试使用“==”和“!=”与字符串数组和字符进行比较时出现此错误。这是否意味着我需要做一些运算符重载?如果是这样,任何人都可以指出我在如何做到这一点(或其他方法)的正确方向,因为我还不太熟悉运算符重载。

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;
    }
 }

1 个答案:

答案 0 :(得分:0)

您正在使用std::stringchar''进行比较。尝试改为

if(list[row_start][column_start] == "S" && list[row_end][column_end] != " "){ }

如果您使用的是std::string,那么这是一种标准类型,您将无法重载operator==。有关std::string的参考,请参阅here