![](/img/trans.png)
[英]How do I declare a pointer to an array of Class objects, within the private members of a DIFFERENT Class?
[英]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.