У меня есть карта, объявленная как
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);
}
}
Но это не работает, он говорит, что удалить ожидаемый указатель. Это довольно поздно, поэтому я, вероятно, просто пропустил что-то очевидное, но я хотел, чтобы это работало перед сном. Так я закрываюсь, или я полностью не в том направлении?