【发布时间】:2013-11-27 01:01:56
【问题描述】:
我有一张地图声明为
std::map<std::string, Texture*> textureMap;
我使用它来将纹理文件的路径与实际纹理配对,这样我就可以通过路径引用纹理,而无需为单个精灵多次加载相同的纹理。我不知道如何正确销毁 ResourceManager 类的析构函数中的纹理(地图所在的位置)。
我想过使用这样的迭代器循环:
ResourceManager::~ResourceManager()
{
for(std::map<std::string, Texture*>::iterator itr = textureMap.begin(); itr != textureMap.end(); itr++)
{
delete (*itr);
}
}
但这不起作用,它说 delete 需要一个指针。现在已经很晚了,所以我可能只是遗漏了一些明显的东西,但我想在睡觉前完成这项工作。那么我是接近还是我完全走错了方向?
【问题讨论】:
标签: c++ pointers stl destructor