我創建一個循環內的一些對象,並把它添加到listwith:刪除創建的對象的內部名單
list<MyObject> myList;
MyObject* ob = new MyObject();
ob.setAttribute("whatever");
myList.push_back(*ob);
循環結束後,我使用了列表幾次。 我已經開始了一個泄漏檢測器,看到了,我必須刪除所有的MyObject
對象。
我如何正確刪除它們(在析構函數中?)。我應該使用迭代器嗎?但是,我如何獲得真正的對象 - 而不是迭代器指針?
非常感謝。
請注意,您的列表包含原始對象,而不是指向它們的指針。 – Rerito
這不會編譯 - 你試圖將一個指針推入對象列表。除非你有一個很好的理由來使用'new',否則只要執行'push_back(Object())'並且不用擔心內存泄漏。 –
對不起 - 我在問題中寫了示例代碼,忘記添加一些細節。我修改了它。 –