簡體   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