Я использую примерки поймать блок, как это:Повторное использование переменных, объявленных на Try-Catch
try {
Texture heightmapTexture = Texture("Snow0101_7_M.jpg");
} catch (TextureLoadException exc) {
std::cout << exc.what() << std::endl;
}
Дело в том, что мне нужно повторно использовать переменную heightmapTexture далее в моей программе. Итак, я понял, что не могу этого сделать из-за объема. Должен ли я помещать остальную часть программы в область видимости? Для меня это не имеет никакого смысла.
Я также не могу объявить переменную за пределами области действия, потому что мне нужно ее инициализировать. Он имеет конструктор, который получает только входную строку.
Что было бы лучшим решением?
Я понимаю, что могу использовать указатель, но я стараюсь избегать этого (я не очень хорошо предотвращаю утечку памяти).
EDIT: Извините, я объявлял переменную как класс Heightmap, что неправильно !, это объект текстуры. Но проблема такая же.
Используйте boost :: shared_ptr вместо необработанных указателей, избегайте утечек и решите проблему. – vishal129
Объект, который может быть инициализирован, но не назначен? Можете ли вы изменить этот класс? – Silicomancer
что вы имеете в виду @Silicomancer? Я предполагаю, что тогда это будет указатель. – lhahn