0

我不确定如何在自己的类中创建对象数组。例如:

class A { 
public:
  const static int MAX_SIZE = 10;

 private:
  A arrayOfOBjects[MAX_SIZE];


}

我收到一条错误消息,“现在允许不完整的类型”我该怎么做?如果我在 A 类中声明另一个类的对象数组,它将起作用。但是如何在其自己的类中创建对象数组?

4

3 回答 3

0

您显然不能包含对象本身的实例。这将需要无限量的存储;-)

出于同样的原因,您不能包含多个。也许您的意思是数组是一个不会添加到一个实例状态的静态成员?

于 2013-05-26T13:28:49.337 回答
0

使用指针。或 shared_ptr 等并动态分配对象

class A { 
public:
  const static int MAX_SIZE = 10;

 private:
  A * arrayOfOBjects[MAX_SIZE];


}
于 2013-05-26T09:03:08.013 回答
0

通过使用指针,您可以解决此问题

class A { 
public:
  const static int MAX_SIZE = 10;
  void allocate(){
     arrayOfOBjects=new A[MAX_SIZE];
  }
 private:
  A *arrayOfOBjects;
};

您可以按以下方式使用它

A a;
a.allocate();
于 2015-07-01T04:38:23.287 回答