//探究类派生时构造函数的顺序 //在派生类对象的创建中,首先是虚基类的构造函数并按它们声明的顺序构造。 //第二批是非虚基类的构造函数按它们声明的顺序调用。 //第三批是成员对象的构造函数。最后是派生类自己的构造函数被调用 #include <iostream> using namespace std; class B { public: B() { cout<<"B"<<endl; } int x; }; class B1 { public: B1() { cout<<"B1"<<endl; } int n; }; class B2 { public: B2() { cout<<"B2"<<endl; } int n; }; class D : public B1, public B2 ,virtual public B { public: D() { cout<<"D"<<endl; } int m; }; void main() { D d; } <img src="http://img.blog.csdn.net/20150512212702511?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZG91ZG91d2ExMjM0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
原文:http://blog.csdn.net/doudouwa1234/article/details/45675249