问题 单项选择题

在下列程序的横线处填上适当的内容,使程序执行后的输出结果为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;

A.public A

B.private A

C.protected A

D.virtual public A

答案

参考答案:D

解析: 由主函数main入手,定义了类D对象obj。其中D为类B和C的公有继承,A是C的虚基类。题目中要求的输出结果为“ABCD”,依次为类A,类B,类C,类D冲构造函数的输出语句。为了保证基类通过多条路径被派生类“void print()const”,输出为print2。

选择题
单项选择题