/* 范例:18-3 */
#include
class A
{
public:
A(){ cout ~A(){ cout };
class B:virtual public A
{
public:
B(){ cout ~B(){ cout };
class C
{
public:
C(){ cout ~C(){ cout };
class D:virtual public A
{
public:
D(){ cout ~D(){ cout };
class E:public C,public B,virtual public D
{
public:
E(){ cout ~E(){ cout };
void main(void)
{
E* obj_e=new E; /* 以虚拟的方式继承会比一般方式继承较早调用构造式,
一般方式继承以继承顺序来排列 */
cout delete obj_e;
getchar();
}
程序执行结果:
class A的构造式
class D的构造式
class C的构造式
class B的构造式
class E的构造式
===============
class E的析构式
class B的析构式
class C的析构式
class D的析构式
class A的析构式