不能。这个问题来自于《Effective C++》条款9:永远不要在构造函数或析构函数中调用虚函数 。
简要结论:
1. 从语法上讲,调用完全没有问题。
2. 但是从效果上看,往往不能达到需要的目的。
Effective 的解释是:
派生类对象构造期间进入基类的构造函数时,对象类型变成了基类类型,而不是派生类类型。
同样,进入基类析构函数时,对象也是基类类型。
详情参考:
https://blog.csdn.net/henrytien/article/details/80064863
https://blog.csdn.net/davidsu33/article/details/79042011