Этот ответ достаточно хорош, но для добавления еще нескольких.
Я вижу, что вы были закодированы с помощью Java
. В C++
для создания переменной / объекта в стеке ключевое слово new
не требуется. Фактически, когда вы используете ключевое слово new
, ваш объект создает в куче, и он не уничтожает после выхода из области. Чтобы уничтожить его, вам нужно называть delete
в вашем случае delete test;
. В такой структуре, как ваша, после выхода из области вы просто теряете указатель на то, что указывает на объект, поэтому после выхода из области вы не можете освободить память и деструктор вызова, но в конечном итоге дескриптор вызова ОС сразу после выполнения команды exit()
.
Подводя итог C++
! = Java