要使程序执行后的输出结果为ABCD,应在横线处添加语句( )。 #include using namespace std; classA { public:A(){cout

admin2012-12-29  17

问题 要使程序执行后的输出结果为ABCD,应在横线处添加语句(             )。
    #include
    using namespace std;
    classA
    {
      public:A(){cout<<‘A’;}
    };
    class B:___________
    {
      public:B0{cout<<‘B’;}
    };
      class C:virtual public A
    {
      public:C0{cout<<‘C’;}
    );
    class D:public B,public C
    {
      public:D0{cout<<‘D’;}
    };
    void main0{D obj;)

选项 A、publicA
B、privateA
C、protectedA
D、virtualpublicA

答案D

解析 由主函数main入手,定义了类D对象obj。其中D为类B和C的公有继承,A是C的虚基类。题目中要求的输出结果为“ABCD”,依次为类A,类B,类C,类D中构造函数的输出语句。为了保证基类通过多条路径被派生类继承时,即保证A只被继承一次,输出一个A,所以不但需要声明A为C的虚基类,同样也要声明A为B的虚基类。
转载请注明原文地址:https://jikaoti.com/ti/41L0FFFM
0

最新回复(0)