C ++: почему он не вызывает деструктор?
Я использую дополнительные скобки в моем коде. Я думал, когда деструктор должен быть вызван после того, как локальная переменная заканчивается, но это не такработать так:
class TestClass {
public:
TestClass() {
printf( "TestClass()\n" );
}
~TestClass() {
printf( "~TestClass()\n" );
}
};
int main() {
int a, b, c;
{
TestClass *test = new TestClass();
}
}
Это выводит:
TestClass ()
Так что это невызвать деструктор TestClass, но почему? Если я вызываю его вручную (удаляем тест), он вызывает деструктор, верно. Но почему это не таквызвать деструктор в первом случае?