C++构造函数和析构函数中可以调用虚函数吗?

647 阅读1分钟

不能。这个问题来自于《Effective C++》条款9:永远不要在构造函数或析构函数中调用虚函数 。

简要结论: 
1. 从语法上讲,调用完全没有问题。 
2. 但是从效果上看,往往不能达到需要的目的。 
Effective 的解释是: 
派生类对象构造期间进入基类的构造函数时,对象类型变成了基类类型,而不是派生类类型。 
同样,进入基类析构函数时,对象也是基类类型。

详情参考:

blog.csdn.net/henrytien/a…

blog.csdn.net/davidsu33/a…