Мы используем файлы cookie
Мы используем файлы cookie для улучшения работы сайта и предоставления вам персонализированного опыта. Правила использования файлов cookie можно найти в нашей политике конфиденциальности
Деструкторы локальных объектов вызываются при раскрутке стека во время обработки исключения. Однако есть ситуации, когда деструктор не вызван:
std::abort()
или std::terminate()
. Эти функции завершают программу немедленно, без обычной процедуры очистки и раскрутки стека.catch
) или во время раскрутки стека при обработке первого исключения возникает второе исключение (std::uncaught_exceptions() > 0
), стандартная библиотека вызывает std::terminate()
, что приводит к немедленному завершению программы без вызова деструкторов для объектов, которые еще не были уничтожены.new
) и управляемых умными указателями или ручным delete
. Если объект выделен динамически и не управляется, а исключение происходит до явного delete
, деструктор не вызывается.std::exit()
. Эта функция завершает программу, вызывая зарегистрированные функции atexit
, но не вызывает деструкторы для локальных автоматических объектов.c
Деструкторы локальных объектов вызываются при раскрутке стека во время обработки исключения. Однако есть ситуации, когда деструктор не вызван:
std::abort()
или std::terminate()
. Эти функции завершают программу немедленно, без обычной процедуры очистки и раскрутки стека.catch
) или во время раскрутки стека при обработке первого исключения возникает второе исключение (std::uncaught_exceptions() > 0
), стандартная библиотека вызывает std::terminate()
, что приводит к немедленному завершению программы без вызова деструкторов для объектов, которые еще не были уничтожены.new
) и управляемых умными указателями или ручным delete
. Если объект выделен динамически и не управляется, а исключение происходит до явного delete
, деструктор не вызывается.std::exit()
. Эта функция завершает программу, вызывая зарегистрированные функции atexit
, но не вызывает деструкторы для локальных автоматических объектов.c
Зарегистрируйтесь или войдите, чтобы получить доступ к полным ответам на все вопросы из банка вопросов.