众所周知,要构建派生类对象,首先调用基类构造函数初始化对象的基类部分,然后调用派生类构造函数。
在运行基类的构造函数时,对象的派生类部分未初始化。 其实,此时的对象还不是派生类的对象。
要分析派生类对象,首先调用派生类分析函数,一旦开始执行派生类分析函数,对象中派生类的成员变量就会出现未定义的值,在这种情况下,对象就会变得不完整。
为了解决这一不完整问题,编译器假设在调用构造函数/析构函数时进行了转换,具体取决于对象类型是否为当前构造函数/析构函数所在的类类型。
这样,基类的构造函数或析构函数就会将派生类对象视为基类类型对象。 这样的结果会影响在构造函数、构造函数调用过程中调用的虚函数类型的动态绑定对象,最终在构造函数或构造函数中调用虚函数时,会为构造函数或构造函数自身的类类型定义这些结果
各位,get到了吗?