題 4 分析以下程序執(zhí)行結(jié)果:
#include
class A
{
public:
A(char *s) { cout << s << endl; }
~A() {}
};
class B:public A
{
public:
B(char *sl,char *s2) :A(sl)
{
cout << s2 << endl;
}
};
class C:public A
{
public:
C(char *sl,char *s2) :A(sl)
{
cout << s2 << endl;
}
};
class D:public B,public C
{
public:
D(char *sl,char *s2,char *s3,char *s4) :B(sl,s2),C(sl,s3)
{
cout << s4 << endl;
}
void main ()
{
D d("class A","class B","class C","class D");
}
解:
D類是從B和C類派生的,而B和C類又都是從A類派生,但各有自己的副本。
所以輸出為:
class A
class B
class A
class C
class D
推薦:全國計算機等級考試一級筆試模擬試題15套
希望與更多計算機等級考試的網(wǎng)友交流,請進入計算機等級考試論壇