Не вызываются деструкторы локальных объектов с автоматическим временем жизни, если исключение брошено в конструкторе и объект не был полностью сконструирован.
Также деструкторы не вызываются для:
malloc
и не были освобождены).noexcept(false)
и сами бросают исключение во время раскрутки стека (stack unwinding
). В этом случае программа обычно аварийно завершается (std::terminate
).Пример невызова деструктора в конструкторе:
cpp
Не вызываются деструкторы локальных объектов с автоматическим временем жизни, если исключение брошено в конструкторе и объект не был полностью сконструирован.
Также деструкторы не вызываются для:
malloc
и не были освобождены).noexcept(false)
и сами бросают исключение во время раскрутки стека (stack unwinding
). В этом случае программа обычно аварийно завершается (std::terminate
).Пример невызова деструктора в конструкторе:
cpp
Register or sign in to get access to full answers for all questions from the question bank.