の定義some_class
は次のとおりです。
class some_class
{
// stuff
public:
~some_class()
{
delete dynamic_three;
}
private:
classA one;
classB two;
classC* dynamic_three;
}
オブジェクトの存続期間が終了すると、その破棄は次のようになります。(1)デストラクタを呼び出し、(2)クラス定義で宣言されているのと同じ順序(=メモリ内の位置)でサブオブジェクトを破棄します。
しかし、私がそのようなものを持っている場合:
auto* ptr = new some_class();
// more stuff
ptr->~some_class(); // l. X
ステップ(2)も実現されていますか?つまり、X行では、サブオブジェクトのデストラクタも呼び出されますか、some_class
それともデストラクタの本体のみが実行されますか?