【校招面试 之 C/C++】第7题 C++构造函数不能是虚函数的原因

1、虚拟函数调用只需要“部分的”信息,即只需要知道函数接口,而不需要对象的具体类型。但是构建一个对象,却必须知道具体的类型信息。如果你调用一个虚拟构造函数,编译器怎么知道你想构建是继承树上的哪种类型呢?所以这在逻辑上是一个悖论。

2、除了虚表,还有虚表指针vptr,类实例需要靠他指向虚表,构造的时候很可能vptr还没有准备好。

原文地址:https://www.cnblogs.com/xuelisheng/p/9333421.html