この回答では、ライアンは仮想デストラクタを直接呼び出します。VS2010 でコードをテストしたところ、すべてのデストラクタが正しく呼び出されました (ロギング ステートメントでテスト済み)。そうすることは実際に有効ですか?このようなアプローチの問題、欠陥、または良い点は何ですか?
reset
少なくともデストラクタでクリーンアップする必要があるため、仮想関数をオーバーライドしなくても、実際の型を実際に強制的にリセットする方法としか考えられません。
また、デストラクタの呼び出しはどのような副作用をもたらすのでしょうか? そのようなデストラクタ呼び出しの後にオブジェクトを使用するのは未定義の動作ですか? 呼び出しですぐに再初期化するとどうなりnew (this) MyClass();
ますか?