C++ は、スタックに割り当てられたオブジェクトに対してデストラクタが呼び出されることをどのように保証しますか? 次のように動的メモリを割り当てると、デストラクタ関数 (またはそのポインタ) はどうなりますか。
class MyClass {
public:
~MyClass()
{
std::cout<<"Destructor called."<<std::endl;
}
MyClass()
{
std::cout<<"Constructor called."<<std::endl;
}
};
....................................................................
//Limit scope for example
{
MyClass instance;
}
コンストラクタとデストラクタの両方が呼び出されます。何が起きてる?