[英]Properly deleting a Deque of Pointers
我有一個簡單的問題。 我有一個雙端隊列
std::deque<NPC*> enemyList
其中包含動態分配的NPC對象。 每個NPC對象還具有指向動態分配的Path and Shape對象的指針句柄,可以通過NPC類的getShape()和get Path()訪問器進行訪問。
在這種情況下,這就是我當前釋放內存的方式:
while (enemyList.size() != 0) //delete npc's
{
Shape3D *sPtr = enemyList.back()->getShape();
Path *pPtr = enemyList.back()->getPath();
NPC *npcPtr = enemyList.back();
enemyList.pop_back();
delete sPtr;
delete pPtr;
delete npcPtr;
}
該代碼可以編譯,並且似乎可以正常工作,但是我不確定它在技術上是否正確。 這是否適當?如果不正確,哪種方法可以更好地達到預期效果?
謝謝!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.