Назад к задачам
Junior — Senior
9

Поведение delete при исключении в конструкторе объекта

Получайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Условие задачи

Как будет вести себя программа, если конструктор бросит исключение? Будет ли выполнен оператор delete и возникнет ли утечка памяти?

#include <iostream>

struct Data {
    Data() {
        throw std::runtime_error("exception");
    }
};

int main(int argc, char** argv) {
    try {
        Data* ptr = new Data;
        delete ptr;
    } catch (const std::exception& e) {}
    
    return EXIT_SUCCESS;
}