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