问题 填空题

下面程序的输出结果是 【15】
#include<iostream>
using namespace std;
class base

protected:
int a;
public:
base()cout<<"0":

class base1:virtual public base

public:
base1()cout<<"1";

class base2:virtual public base

public
base2()cout<<"2";

class derived:public base1,public base2

public:
derived()cout<<"3";

int main()

derived obj;
cout<<end1;
return 0;

答案

参考答案:0123

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

单项选择题 共用题干题
选择题