C++ 在循环语句中分配多维数组:表达式必须是可修改的左值

C++ 在循环语句中分配多维数组:表达式必须是可修改的左值,c++,arrays,multidimensional-array,2d,lvalue,C++,Arrays,Multidimensional Array,2d,Lvalue,在一个类中,我有这样一个数组: public: int playGrid[10][10];//size of the grid, 10x10 or 100 squares 当我这样做的时候: for (int i = iX1; i < iX2; i++) { if (i == iX1) { playGrid[i][iY1] = 4; }

在一个类中,我有这样一个数组:

public:
    int playGrid[10][10];//size of the grid, 10x10 or 100 squares
当我这样做的时候:

        for (int i = iX1; i < iX2; i++)
        {
            if (i == iX1)
            {
                playGrid[i][iY1] = 4;
            }
        }
给我:

expression must be a modifiable lvalue
我不确定我做错了什么。此代码位于类的一个方法中,因此它可以访问它。我已经找遍了所有地方,但是我找不到一个例子,他们使用带有简单整数赋值的2D数组

谢谢你的帮助

编辑:请求了更多代码,因此我们开始:

void Grid::placeBoat(int iX1, int iY1, int iX2, int iY2) const
{
    if (iX1 != iX2)
    {
        if (iX1 < iX2)
        {
            for (int i = iX1; i < iX2; i++)
            {
                if (i == iX1)
                {       
                    playGrid[i][iY1] = 4;
                }
            }
        }
        else
        {

        }
    }
    else if (iY1 != iY2)
    {

    }
}

问题在于,在常量方法中,您试图修改对象。移除常数

class Grid
{
    ...
    void placeBoat(int, int, int, int);
    ...
};

void Grid::placeBoat(int iX1, int iY1, int iX2, int iY2)
{
    ...
}

问题在于,在常量方法中,您试图修改对象。移除常数

class Grid
{
    ...
    void placeBoat(int, int, int, int);
    ...
};

void Grid::placeBoat(int iX1, int iY1, int iX2, int iY2)
{
    ...
}
请参见定义末尾的
const
?这意味着您允许在实例(
Grid
)为常量时调用此方法

由于您允许该调用,因此整个函数体将在编译时假定
this
的类型为
const Grid*

然后,您试图更改数组(它是(const)网格的一个成员),从而更改编译器错误

请参见定义末尾的
const
?这意味着您允许在实例(
Grid
)为常量时调用此方法

由于您允许该调用,因此整个函数体将在编译时假定
this
的类型为
const Grid*


然后,您试图更改数组,它是(const)网格的一个成员,因此出现了编译器错误。

不是错误的确切原因,但我认为您的意思是
if(I==iX1)
而不是
if(I=iX1)
需要查看更多代码。错误不在您发布的代码行中(即使错误消息是)。@john我已按要求添加了更多代码。@lilisten-Oh。是的。就这样。。。。我现在觉得自己很愚蠢。这不是你的错误的确切原因,但我认为你的意思是
if(I==iX1)
而不是
if(I=iX1)
需要查看更多代码。错误不在您发布的代码行中(即使错误消息是)。@john我已按要求添加了更多代码。@lilisten-Oh。是的。就这样。。。。我现在觉得自己很愚蠢。
class Grid
{
    ...
    void placeBoat(int, int, int, int);
    ...
};

void Grid::placeBoat(int iX1, int iY1, int iX2, int iY2)
{
    ...
}
void Grid::placeBoat(int iX1, int iY1, int iX2, int iY2) const