另一个类中的自定义类实例数组导致编译器崩溃

时间:2014-09-19 18:47:08

标签: c++ arrays class compiler-errors nested

这是一个奇怪的问题,但我没有从编译器获得太多有用的信息,我想知道我做错了什么。

我有一个程序(我们只称它为'main'),其中包含一个类'world',它本身包含一个类'tile'。被包括一切正确据我可以告诉 - 我可以添加瓦片的实例作为世界的一个实例中的一员,然后(经由公共getter方法)从主访问在瓦片中的数据

当我想使用瓦片的多维阵列作为世界的一个实例中的一员,会出现问题 - 编译器崩溃,并显示有帮助信息“cc1plus.exe已停止工作”和有帮助文本“[构建错误] [main.o]错误1“。

我对瓷砖类中定义的参数的默认构造函数(和世界级的,以及虽然我不认为这是相关的。)我不知道在所有还有什么可以导致此。任何见解都会非常感激。

例: main.cpp中

#include <world.h>
world newWorld;
int main(int argc, char *argv[]){
newWorld = world();
}

world.h

#include <tile.h>
class world {
tile wmap[100][100][10]
public:
world(){
//code that calls the parametized constructor for tile for each element in the array
}
};

tile.h

class tile {
int temp;
public:
tile(){}
tile(int t){temp = t;}
};

如果答案显而易见,我道歉,这是我几年后第一次回到C ++,似乎我已经马虎了。

1 个答案:

答案 0 :(得分:0)

对于C ++中的多维数组,在尝试使用它之前需要分配空间,在这种情况下可能使用new()。

请参阅How do I declare a 2d array in C++ using new?