我有一张地图声明为
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 需要一个指针。现在已经很晚了,所以我可能只是遗漏了一些明显的东西,但我想在睡前完成这项工作。那么我是接近还是我完全走错了方向?