コンストラクターとデストラクタ内から仮想メソッドを呼び出す際のよく知られた問題により、コンストラクターの直後に呼び出される最終セットアップ メソッドと、それらの直前に呼び出される事前ティアダウン メソッドが必要なクラスになることがよくあります。デストラクタ、次のように:
MyObject * obj = new MyObject;
obj->Initialize(); // virtual method call, required after ctor for (obj) to run properly
[...]
obj->AboutToDelete(); // virtual method call, required before dtor for (obj) to clean up properly
delete obj;
これは機能しますが、呼び出し元が適切なタイミングでこれらのメソッドのいずれかまたは両方を呼び出すのを忘れるというリスクが伴います。
問題は、C++ でこれらのメソッドを自動的に呼び出す方法はありますか? (ないと思いますが、何か賢い方法があれば聞いてみようと思いました)