问题
单项选择题
下面程序的运行结果是
#include<iostream.h>
class base
protected:
int a;
public:
base()cout <<"0";
;
class basel:virtual base
public:
basel () cout <<"1";
;
class base2:virtual base
public:
base2()cout <<"2";
;
class derived:public basel,public base2
public:
derived()cout <<"3";
;
void main()
derived obj;
cout <<end1;
A.0123
B.3120
C.0312
D.3012
答案
参考答案:A
解析: 本题考查的是含有虚基类的继承中构造函数的调用顺序,应该先调用基类的构造函数,接着是按照派生类继承列表的顺序依次调用虚基类的构造函数,最后调用派生类自己的构造函数。