gpt4 book ai didi

C++通过引用其他类传递二维数组

转载 作者:行者123 更新时间:2023-11-28 08:22:36 27 4
gpt4 key购买 nike

想法是 MapGrid 创建并保存带有 map 元素的二维数组,我想将该数组提供给另一个类 MapGenerator,以便它通过编辑其中的方形元素来生成真实 map 。

class MapGenerator {
private:
int MAP_HEIGHT;
int MAP_WIDTH;
Square * worldMap;
void cmdGenerateHeightMap() {
worldMap[i][j]->decraseHeight();
......
}
public:
MapGenerator(Square &myMap, int maxHeight, maxWidth) {
MAP_WIDTH = maxWidth
MAP_HEIGHT = maxHeight;
worldMap = &myMap;
cmdGenerateHeightMap();
}
}
class MapGrid {
private:
static const int MAP_HEIGHT = 100;
static const int MAP_WIDTH = 100;
Square worldMap[MAP_HEIGHT][MAP_WIDTH];
public:
MapGrid() {
for (int i=0; i<MAP_HEIGHT;i++) {
for (int j=0;j<MAP_WIDTH; j++) {
worldMap[i][j] = Square();
}
}
MapGenerator myMap(worldMap);
}
void PrintMyMap() {
//print what the map MapGenerator made
}
}

我收到此错误:变量“MapGenerator myMap”具有初始化程序但类型不完整 map.h我能得到一些更人性化的提示吗 哪里出了问题

最佳答案

交换 MapGeneratorMapGrid 类的定义顺序。您正在尝试在 MapGrid 构造函数中使用 MapGenerator 类,但该类仅在下面进一步定义。

更新:好的,现在您重写了您的问题,这是另一个猜测(您的代码实际上没有编译,所以我只能猜测):MapGeneratorMapGrid 在不同的头文件中,在 MapGrid 的头文件中你只有 MapGenerator 的前向声明而不是实际定义(您可以通过包含 MapGenerator 的 header 来获得)?

关于C++通过引用其他类传递二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5245102/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com