有没有办法动态地(我认为这是正确的术语)在类中定义一个 int 数组,其大小是同一类中的私有(private)成员变量?例如:
class Scene()
{
//public member functions
private:
int max;
int xcoords[max];
}
我在这里搜索了其他已回答的问题,但我还没有学会如何在类里面使用 vector ,这是大多数回复所建议的。理想情况下,在类的构造函数中,我将传递一个 int max,然后用它初始化 xcoord 数组,使其大小为 max,条目均为 -1。
最佳答案
如果您希望动态调整成员(member)数据的大小,您几乎肯定必须将其存储在堆中。也就是说,像这样
class Foo{
int* data;
public:
Foo(int size){
data = new int[size];
}
~Foo(){
// remember to clean up
delete[] data;
}
}
这样,您的构造函数将在创建类时在堆内存中为 size
int
分配大小,并在删除时释放它。
比较官方的c++
构造函数的写法是:
Foo(int size):
data(new int[size])
{
}
但最终它会做同样的事情。
关于c++ - 在 C++ 类中定义一个 int 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35281873/