我不确定如何在自己的类中创建对象数组。例如:
class A {
public:
const static int MAX_SIZE = 10;
private:
A arrayOfOBjects[MAX_SIZE];
}
我收到一条错误消息,“现在允许不完整的类型”我该怎么做?如果我在 A 类中声明另一个类的对象数组,它将起作用。但是如何在其自己的类中创建对象数组?
您显然不能包含对象本身的实例。这将需要无限量的存储;-)
出于同样的原因,您不能包含多个。也许您的意思是数组是一个不会添加到一个实例状态的静态成员?
使用指针。或 shared_ptr 等并动态分配对象
class A {
public:
const static int MAX_SIZE = 10;
private:
A * arrayOfOBjects[MAX_SIZE];
}
通过使用指针,您可以解决此问题
class A {
public:
const static int MAX_SIZE = 10;
void allocate(){
arrayOfOBjects=new A[MAX_SIZE];
}
private:
A *arrayOfOBjects;
};
您可以按以下方式使用它
A a;
a.allocate();