?? 18-3.txt
字號:
/* 范例:18-3 */
#include <iostream.h>
class A
{
public:
A(){ cout <<"class A的構(gòu)造式" <<endl; }
~A(){ cout <<"class A的析構(gòu)式" <<endl; }
};
class B:virtual public A
{
public:
B(){ cout <<"class B的構(gòu)造式" <<endl; }
~B(){ cout <<"class B的析構(gòu)式" <<endl; }
};
class C
{
public:
C(){ cout <<"class C的構(gòu)造式" <<endl; }
~C(){ cout <<"class C的析構(gòu)式" <<endl; }
};
class D:virtual public A
{
public:
D(){ cout <<"class D的構(gòu)造式" <<endl; }
~D(){ cout <<"class D的析構(gòu)式" <<endl; }
};
class E:public C,public B,virtual public D
{
public:
E(){ cout <<"class E的構(gòu)造式" <<endl; }
~E(){ cout <<"class E的析構(gòu)式" <<endl; }
};
void main(void)
{
E* obj_e=new E; /* 以虛擬的方式繼承會比一般方式繼承較早調(diào)用構(gòu)造式,
一般方式繼承以繼承順序來排列 */
cout <<"===============" <<endl;
delete obj_e;
getchar();
}
程序執(zhí)行結(jié)果:
class A的構(gòu)造式
class D的構(gòu)造式
class C的構(gòu)造式
class B的構(gòu)造式
class E的構(gòu)造式
===============
class E的析構(gòu)式
class B的析構(gòu)式
class C的析構(gòu)式
class D的析構(gòu)式
class A的析構(gòu)式
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -