1. 在一个继承体系中,最底层的派生类在构造过程中,先初始化基类部分,再按继承层次依次初始化派生类部分,因此被构造的对象先作为一个基类对象,再按继承层次依次成为派生类对象,例如,在继承层次A→B→C→D中,构造一个D类对象,其依次经历了A→B→C→D的转变,因此对于以下代码:
#include <iostream> using namespace std; class A{ public: virtual void foo(){ cout << "A" << endl; } A(){ foo(); } }; class B :public A{ public: void foo(){ cout << "B" << endl; } B(){ foo(); } }; class C :public B{ public: void foo(){ cout << "C" << endl; } C(){ foo(); } }; class D :public C{ public: void foo(){ cout << "D" << endl; } D(){ foo(); } }; int main() { D d; system("pause"); return 0; }