ppTile = new Tile*[tileN];
for(int x=0; x<tileN; x++)
{
ppTile[x] = new Tile(Tile::TileType(pCData->GetdefaultTile()),
((x*2)+1) % (mapSize+(mapSize-1)),
(x/ ((float)mapSize-0.5))+1,
pCData->GetdefaultHeight()
);
}
我該如何刪除Tile *和Tile對象的數組?刪除指針數組及其對象的正確方法是什麼?
編輯:這是我的猜測:
Map::~Map()
{
if(ppTile)
{
for(int x=0; x<mapSize*(mapSize-1); x++)
{
delete ppTile[x];
}
delete[] ppTile;
}
}
是嗎?
你確實需要指向'Tile'的指針嗎?這聽起來像一個'std :: vector'可能會工作。 –
chris
2013-04-04 21:46:58
將所有'Tile'對象'逐個刪除',然後'delete []'數組。 – jrok 2013-04-04 21:47:37
哦,並確保你知道三/五的規則。它會咬你,如果你不是,你選擇不使用RAII。 – chris 2013-04-04 21:56:14