如何在其自己的类中声明对象数组?

时间:2013-05-26 09:00:40

标签: c++ arrays class object declare

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

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

 private:
  A arrayOfOBjects[MAX_SIZE];


}

我收到一条错误消息,“现在允许不完整的类型”我将如何解决这个问题?如果我从A类中的另一个类声明一个对象数组,它将起作用..但是如何在它自己的类中创建一个对象数组?

3 个答案:

答案 0 :(得分:0)

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

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

 private:
  A * arrayOfOBjects[MAX_SIZE];


}

答案 1 :(得分:0)

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

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

您可以将其用作以下内容

A a;
a.allocate();

答案 2 :(得分:-1)

你显然不能包含对象本身的实例。它需要无限量的存储空间; - )

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