如何设置一个类,我可以拥有一个私有二维数组,它的大小由通过构造函数传入的变量来确定?在构造上创建一个长度可变的二维数组
我已经试过这样:
class World {
private:
const int WIDTH;
const int HEIGHT;
bool map[][];
public:
World(const int MAX_X, const int MAX_Y) : WIDTH(MAX_X), HEIGHT(MAX_Y) {
map = new bool[WIDTH][HEIGHT];
}
};
,但我得到一个关于如何declaration of ‘map’ as multidimensional array must have bounds for all dimensions except the first
和array size in operator new must be constant
即使它是一堆错误。
我也尝试过这种方式,但它没有工作,要么:
class World {
private:
const int WIDTH;
const int HEIGHT;
bool map[WIDTH][HEIGHT];
public:
World(const int MAX_X, const int MAX_Y) : WIDTH(MAX_X), HEIGHT(MAX_Y) {
//map = new bool[WIDTH][HEIGHT];
}
};
我上const int WIDTH
线和在地图上声明行相当无用error: from this location
一个invalid use of non-static data member ‘World::WIDTH’
。
我在做什么错?
编辑: 我宁愿避免使用矢量,因为我还没有在这门课程中“学习”它们。 (据我学习,我的意思是我知道如何使用它们,但教授没有讨论过它们,也不喜欢我们使用外部知识)
建议 - 不要命名变量'map'。 – PaulMcKenzie 2014-11-07 01:12:31
C风格的阵列非常挑剔,这就是为什么我们建议人们不要使用它们。如果在编译时确实知道宽度和高度,则可以使数组工作。 – 2014-11-07 01:27:55
为什么我不应该将它命名为地图?尺寸在施工中已知,而不是在以前。 – Malfist 2014-11-07 01:33:41