Все хорошие программисты на C ++ знают, как избежать утечки памяти (или таких ресурсов, как сокеты):
- Всегда используйте умные указатели, т.е. е .:
std::auto_ptr
, boost::shared_ptr
.
- Всегда помните о праве собственности на объект: кто владеет, кто ссылается, кто несет ответственность и т. Д.
Но утечки памяти все еще случаются. Укажите наиболее распространенные проблемы, когда вы обнаружили
утечка памяти в программе, даже если вы использовали вышеуказанные методы.
Я начинаю:
Иногда вы забываете определить деструктор базового класса как виртуальный. Таким образом, все производные классы ссылаются указателем на базовый класс, который не был уничтожен должным образом и поэтому просочился.