二维数组指针不适用于两个维度 我是C++新手,我似乎无法从另一个类中访问二维数组。这是我迄今为止的尝试,但我感到困惑。这是我试图在线收集的内容,但我不明白,例如,为什么getter函数返回的是char类型,而不是指针形式
比赛头球二维数组指针不适用于两个维度 我是C++新手,我似乎无法从另一个类中访问二维数组。这是我迄今为止的尝试,但我感到困惑。这是我试图在线收集的内容,但我不明白,例如,为什么getter函数返回的是char类型,而不是指针形式,c++,c,arrays,pointers,C++,C,Arrays,Pointers,比赛头球 class Game { public: char (*getLevel())[28]; private: char level[16][28]; } Game.cpp char (*Game::getLevel())[28] { return level; } pacman->moveEntity(getLevel(), pacman->getXPos(), pacman->getYPos(), direction); Pacman
class Game {
public:
char (*getLevel())[28];
private:
char level[16][28];
}
Game.cpp
char (*Game::getLevel())[28] {
return level;
}
pacman->moveEntity(getLevel(), pacman->getXPos(), pacman->getYPos(), direction);
Pacman.cpp
void Pacman::moveEntity(char level, int x, int y, char dir) {
level[y][x] = ' ';
}
[y] 是红线,表示表达式必须有指向对象类型的指针函数签名中的
级别
的类型必须与调用它的类型匹配,在这种特殊情况下,字符级别[][28]
显然您已经特意从该函数返回了指针,你真的在问我们为什么函数会返回一个指针?请发布一个。这不是失败的代码。因为参数level
是一个字符,并且您无法将char(*)[28]
转换为char
叹气,所以新手很难提问。我提到了第一部分,因为我实际上没有将类型指定为char*。它是char,但返回一个指针。今晚所有的反对票是怎么回事?这些人显然是来寻求帮助的。如果你来这里只是为了投反对票或诽谤,而没有提供任何指导,那么你来这里的理由是错误的。如果你需要更多的信息或者想建议他遵守规则,那就不必投反对票。如果你不能区分真正寻求帮助的人和试图通过游戏来完成任务的人,那么你就不需要在这里。我们在这里是为了帮助,而不是贬低。记住这一点。或者如果你想用同样的风格来写的话,char(*level)[28]
。