问题 单项选择题

下面程序的运行结果是
#include<iostream.h>
class base
protected:
int a;
public:
base( )cout<<"0";

class basel:virtual base
public:
base1( )cout<<"1";

class base2:virtual base
public:
base2( )cout<<"2";

class derived:public base1,public base2
public:
derived( )cout<<"3";
void main( )

derived obj;
cout < < end1;

A.0123

B.3120

C.0312

D.3012

答案

参考答案:A

解析: 本题考查的是含有虚基类的继承中构造函数的调用顺序,应该先调用基类的构造函数,接着是按照派生类继承列表的顺序依次调用虚基类的构造函数,最后调用派生类自己的构造函数。

问答题 论述题
多项选择题