由于从构造函数和析构函数内部调用虚方法的众所周知的问题,我通常最终得到的类需要在其构造函数之后调用最终设置方法,并在其之前调用预拆卸方法析构函数,像这样:
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++ 中有没有办法让这些方法被自动调用,所以调用者不必记住调用它们?(我猜没有,但我想我还是会问一下,以防万一有一些聪明的方法可以做到)