你總是需要delete
你在某種程度上new
的一切。這意味着,您需要在每次迭代中使用delete obj
以避免泄漏。請注意,你永遠不會真的存儲Object
obj
點,但它的副本。
你這樣做的方式知道是非常不尋常的,反正也不是很方便:因爲new Objects[size]
已經默認構建了你的Objects
,所以你顯示的循環沒有任何用處。特別是,它不添加任何元素,它們已經在那裏。你可以把它留下。如果您想更改數組的內容,例如做多的初始化,你的循環通常會看起來更像這個
for (int i = 0; i < size; i++){
objects[i] = newValue;
}
記住,Objects
是new Objects[size]
之後已經在那裏!
在實踐中,你會成爲一個
std::vector<Object> objects(size);
多更好(或者,如果上面不適合您的用例,一個
std::vector<std::unique_ptr<Object>> objects(size);
,但我覺得這不太可能)。要詳細瞭解std::vector
可以做什麼以及如何使用它,請閱讀the documentation。可能對你最重要的是:你可以像數組一樣索引它。
使用std :: vector。 –
你沒有聲明一個指針數組。你真的想申報嗎? – juanchopanza