单选题
下面程序的运行结果是
#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
【答案解析】[解析] 本题考查的是含有虚基类的继承中构造函数的调用顺序,应该先调用基类的构造函数,接着是按照派生类继承列表的顺序依次调用虚基类的构造函数,最后调用派生类自己的构造函数。