C ++: почему он не вызывает деструктор?

Я использую дополнительные скобки в моем коде. Я думал, когда деструктор должен быть вызван после того, как локальная переменная заканчивается, но это не такработать так:

class TestClass {
public:
    TestClass() {
        printf( "TestClass()\n" );
    }
    ~TestClass() {
        printf( "~TestClass()\n" );
    }
};

int main() {
    int a, b, c;
    {
         TestClass *test = new TestClass();
    }
}

Это выводит:

TestClass ()

Так что это невызвать деструктор TestClass, но почему? Если я вызываю его вручную (удаляем тест), он вызывает деструктор, верно. Но почему это не таквызвать деструктор в первом случае?

Ответы на вопрос(3)

Ваш ответ на вопрос