![](/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.