Existe alguma maneira automatizada de implementar chamadas de método virtual pós-construtor e pré-destrutor?

Devido aos problemas bem conhecidos de chamar métodos virtuais de dentro de construtores e destruidores, geralmente termino com classes que precisam de um método de configuração final a ser chamado logo após seu construtor, e um método de pré-detalhamento a ser chamado logo antes de seu construtor. destruidor, assim:

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;

Isso funciona, mas traz consigo o risco de o chamador esquecer de chamar um ou ambos os métodos nos momentos apropriados.

Portanto, a questão é: existe alguma maneira em C ++ para obter esses métodos para ser chamado automaticamente, para que o chamador não precise se lembrar de chamá-los? (Eu estou supondo que não há, mas eu pensei em perguntar de qualquer maneira apenas no caso de haver alguma maneira inteligente de fazê-lo)

questionAnswers(9)

yourAnswerToTheQuestion