📄 18-3.txt
字号:
/* 范例:18-3 */
#include <iostream.h>
class A
{
public:
A(){ cout <<"class A的构造式" <<endl; }
~A(){ cout <<"class A的析构式" <<endl; }
};
class B:virtual public A
{
public:
B(){ cout <<"class B的构造式" <<endl; }
~B(){ cout <<"class B的析构式" <<endl; }
};
class C
{
public:
C(){ cout <<"class C的构造式" <<endl; }
~C(){ cout <<"class C的析构式" <<endl; }
};
class D:virtual public A
{
public:
D(){ cout <<"class D的构造式" <<endl; }
~D(){ cout <<"class D的析构式" <<endl; }
};
class E:public C,public B,virtual public D
{
public:
E(){ cout <<"class E的构造式" <<endl; }
~E(){ cout <<"class E的析构式" <<endl; }
};
void main(void)
{
E* obj_e=new E; /* 以虚拟的方式继承会比一般方式继承较早调用构造式,
一般方式继承以继承顺序来排列 */
cout <<"===============" <<endl;
delete obj_e;
getchar();
}
程序执行结果:
class A的构造式
class D的构造式
class C的构造式
class B的构造式
class E的构造式
===============
class E的析构式
class B的析构式
class C的析构式
class D的析构式
class A的析构式
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -