Не вызывай деструкторы явно на локальных объектах. Вместо этого используй правила области видимости в C++, чтобы контролировать, когда объекты удаляются.
Может быть, ты захочешь, чтобы локальный объект удалился раньше, чем закончится его область видимости. Например, ты можешь захотеть закрыть объект File где-то в середине функции:
void someCode() {
File f;
// Код выполняется, пока f открыт
// Хочешь, чтобы f закрылся ТУТ, а не в конце someCode()
// Код выполняется, после того как f закрыт
}
Решение простое и элегантное: создай внутренний блок с помощью фигурных скобок {...}, чтобы ограничить время жизни объекта:
void someCode() {
{
File f;
// Код выполняется, пока f открыт
} // деструктор f автоматически вызывается здесь
// Код выполняется, после того как f закрыт
}
Явное вызывание деструктора вручную на локальном объекте до конца его области видимости — это валидная техника для гарантии освобождения ресурсов в конкретной точке кода.
Новый — ещё не проверен сообществом
Вы