#include <iostream> using namespace std; class X { public: ~X(void); }; X::~X(void) { cout << "an X is getting destroyed" << endl; } int main(void) { { cout << "entering a block" << endl; X x; cout << "exiting a block" << endl; } }
When this program executes, it confirms that x is destroyed after the message ``exiting a block''. This is because an auto variable is destroyed upon the exit of a block, after the last statement (in the block).