繁体   English   中英

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

[英]How do I declare an array of objects within it's own class?

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

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();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM