单选题 在下列程序的横线处填上适当的内容,使程序执行后的输出结果为ABCD。 #include<iostream> using namespace std; class A { public:A(){cout<<‘A’;} }; Class B: { public:B(){cout<<‘B’;} }; class C:virtual public A { public:C(){cout<<‘C’;} }; class D:public B,public D { public:D(){tout<<‘D’;} }; void main(){D obj;}
【正确答案】 D
【答案解析】[解析] 由主函数main入手,定义了类D对象obj。其中D为类B和C的公有继承,A是C的虚基类。题目中要求的输出结果为“ABCD”,依次为类A,类B,类C,类D冲构造函数的输出语句。为了保证基类通过多条路径被派生类“void print()const”,输出为print2。