在多重继承的情况下,将派生类实例化为对象时,构造函数的调用顺序
#include<iostream.h>
class A
{
public:
A()
{
cout<<"类A的构造函数"<<endl;
}
~A()
{
cout<<"类A的析构函数"<<endl;
}
};
class B
{
public:
B()
{
cout<<"类B的构造函数"<<endl;
}
~B()
{
cout<<"类B的析构函数"<<endl;
}
};
class C:virtual public A
{
public:
C()
{
cout<<"类C的构造函数"<<endl;
}
~C()
{
cout<<"类C的析构函数"<<endl;
}
};
class D:virtual public A
{
public:
D()
{
cout<<"类D的构造函数"<<endl;
}
~D()
{
cout<<"类D的析构函数"<<endl;
}
};
class E
{
public:
E()
{
cout<<"类E的构造函数"<<endl;
}
~E()
{
cout<<"类E的析构函数"<<endl;
}
};
class F:public B,public C,public D
{
private:
E eVar;
public:
F()
{
cout<<"类F的构造函数"<<endl;
}
~F()
{
cout<<"类F的析构函数"<<endl;
}
};
void main()
{
F fVar;
cout<<"程序结束!"<<endl;
}