【发布时间】:2010-04-02 23:06:47
【问题描述】:
我有一个类定义为:
class Obj {
public:
int width, height;
Obj(int w, int h);
}
我需要它包含一个像这样的静态数组:
int presc[width][height];
但是,我无法在类中定义,因此可以创建指向 2D 数组的指针(出于好奇,还可以创建 3、4 和 5D 数组),并将其作为类的成员,并且在构造函数中初始化它:
int ar[5][6];
Obj o(5, 6, &ar);
编辑:这里的想法是每个对象都有不同的宽度和高度,所以我用来表示该对象的数组对于该对象将是唯一的,但是一旦定义了该数组(最好在构造函数中),它不会改变。并且特定对象的宽度和高度值在编译时是已知的。
编辑:这些数组用于碰撞检测,方法是将两个对象的 presc 数组叠加到一个大数组上,并查看重叠的位置,声明如下:
Obj player1(32, 32); //player with a width of 32 px and height of 32 px, presc[32][32]
Obj boss(500, 500); //boss with a width of 500 px and height of 500 px, presc[500][500]
【问题讨论】:
-
每个 Obj 对象是否都具有恒定的宽度和高度?
-
宽度和高度一旦定义,就不会改变,但每个对象的宽度和高度都会不同。
-
你能告诉我们用法吗?您如何在编译时获取数组大小?
标签: c++ class dynamic-arrays static-array