Middle+
66
questionbank

Если в конструкторе будет вызвано исключение, будет ли вызван деструктор?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

Нет, деструктор не будет вызван.

Если во время выполнения конструктора класса возникает исключение, объект считается не полностью сконструированным. В таком случае C++ не вызывает деструктор для этого частично созданного объекта. Вызываются деструкторы только для полностью сконструированных подобъектов (базовых классов или членов класса).

Пример:

cpp

Вывод программы:

plaintext

Деструктор ~MyClass() не вызывается.