武汉大学C++完整讲义(李春葆).ppt

武汉大学C完整讲义(李春葆)要点

11.5.3 虚基类的初始化 虚基类的初始化与一般多继承的初始化在语法上是一样的,但构造函数的调用次序不同。派生类构造函数调用的次序有以下原则: (1)虚基类的构造函数在非虚基类之前调用。 (2)若同一层次中包含多个虚基类,这些虚基类的构造函数按它们说明的次序调用。 (3)若虚基类由非虚基类派生而来,则仍然先调用基类构造函数,再按派生类中构造函数的执行顺序调用。 【例】 分析以下程序的执行结果。 #include iostream.h class A { public: A() { cout A endl;} }; class B:public A { public: B() { cout B endl;} }; class C1:virtual public B { public: C1() { cout C1 endl;} }; class C2:virtual public B { public: C2() { cout C2 endl;} }; class D:public C1,public C2 { public: D() { cout D endl;} }; void main() { D d; } A B C1 C2 D 作业 练

文档评论(0)

1亿VIP精品文档

相关文档