问题 单项选择题

下面程序的运行结果是
  #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<<endl;

A.0123

B.3120

C.0312

D.3012

答案

参考答案:A

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

问答题 计算题
问答题 论述题