正在返回指针数组成员变量的元素

Returning element of pointer array member variable

本文关键字:变量 元素 组成员 数组 返回 指针      更新时间:2023-10-16

我是指针新手,很难适应。我正在做一个捕食者-猎物模拟器,有一个City类,它有一系列Being对象,最终会被塑造成人类或僵尸。城市类有一个数组:

class City
{
protected:
    Being *grid[GRID_HEIGHT][GRID_WIDTH];//holds beings

我将元素初始化为null,一开始只是为了保持简单。

City::City()
{
    for (int i = 0; i < GRID_HEIGHT; ++i) {
        for (int j = 0; j < GRID_WIDTH; ++j) {
            this->grid[i][j] = NULL;
        }
    }
}

我还有一个方法,应该从数组中返回一个Being这就是我遇到错误的地方:"标识符'grid'未定义",或者如果我使用"THIS"关键字,它会说这只允许在非静态成员函数中使用。

Being City::*getBeing(int x, int y)
{
    return grid[x][y];
}

所以我可以从主方法访问它,只需打印一个占位符网格:

City myCity;
int main(){
        if (myCity.getBeing(i,j) == null)
        {
            cout << "O";
        }
}

我该怎么解决这个问题?有没有更好地理解指针的经验法则?

getBeing函数的定义应为:

Being *City::getBeing(int x, int y) { ... }