在下面程序的画线处填上适当的内容,使程序执行后的输出结果为ABCD。 include using在下面程序的画线处填上适当的内容,使程序执行后的输出结果为ABCD。include <iostream>using namespace std;class A{public:A( ){cout<<'A';}};class B: (11) {public:B( ){cout<<'B';}{;class C: (12) {public:C( ){cout<<'C';}};class D:public B,publ

题目
在下面程序的画线处填上适当的内容,使程序执行后的输出结果为ABCD。 include using

在下面程序的画线处填上适当的内容,使程序执行后的输出结果为ABCD。

include <iostream>

using namespace std;

class A{

public:A( ){cout<<'A';}

};

class B: (11) {

public:B( ){cout<<'B';}

{;

class C: (12) {

public:C( ){cout<<'C';}

};

class D:public B,public C{

public:D( ){cout<<'D';}

};

void main( ){

D( );

cout<<endl;

}


相似考题
参考答案和解析
正确答案:public A 空格
public A 空格 解析:考查在继承中构造函数的调用顺序,创建派生类对象时依次调用基类的构造函数,最后调用派生类的构造函数。考查在继承中构造函数的调用顺序,创建派生类对象时依次调用基类的构造函数,最后调用派生类的构造函数。
更多“在下面程序的画线处填上适当的内容,使程序执行后的输出结果为ABCD。 include <iostream> using ”相关问题
  • 第1题:

    在下面程序的横线处填上适当的内容,使程序执行后的输出结果为ABCD。 include usingn

    在下面程序的横线处填上适当的内容,使程序执行后的输出结果为ABCD。

    include <iostream.h>

    using namespace std;

    class A

    {

    public: A() {cout<<'A';

    };

    class B:______

    {

    public: B() {cout<<'B';}

    };

    class C:______

    {

    public: C(} cout<<'C';}

    };

    class D:public B, public C

    {

    public: D(){cout<<'D';}

    };

    void main(){D obj;}


    正确答案:virtual public A; visual public A
    virtual public A; visual public A 解析:本题考核虚基类的应用。通过虚基类所派生的类,在所产生的对象中,只包含了一个和其他类共享的基础对象,也就是说,从同一个基类中以虚拟方式派生的所有类,在它们所产生的对象里,不会有一份基础对象,而只是在内存里保留一份基础对象,而派生类中只保留指向此基础对象的指针,这样就千会同时有两份基类对象的情形发生。题中程序最后字符A只输出了一次,所以类A必须为类 B和类C的虚基类。

  • 第2题:

    在下面程序的横线处填上适当的内容,使程序执行后的输出结果为ABCD。 include using nam

    在下面程序的横线处填上适当的内容,使程序执行后的输出结果为ABCD。

    include<iostream>

    using namespace std;

    class A

    {

    public: A(){cout<<'A';}

    };

    class B:【 】

    {

    public:B(){cout<<'B';)

    };

    class C:【 】

    {

    public;C(){cout<<'C';}

    };

    class D:public B,public C

    {

    public:D(){cout<<'D';}

    };

    void main(){D obi;}


    正确答案:virtual public A virtual public A
    virtual public A virtual public A

  • 第3题:

    【填空题】在下面程序下划线处填上适当内容,使程序执行结果为: 200________100 #include <iostream> using namespace std; Template(1____) T f(T x, T y){ if (sizeof(T) == (2____)) return x + y; else return x*y; } void main() { cout << f(10, 20) << "--" << (45.5, 54.5) << endl; }


    struct

  • 第4题:

    在下面的程序的横线处填上适当的语句,使该程序的输出结果为12。include using namespac

    在下面的程序的横线处填上适当的语句,使该程序的输出结果为12。

    include<iostream>

    using namespace std;

    class TestClass

    {

    public:

    int a,b;

    TestClass(int i,int j)

    {

    a=i;

    b=j;

    }

    };

    class TestCla


    正确答案:coutTestClass∷a
    coutTestClass∷a 解析: 题目中程序TestClass为基类,TestClass1为派生类,在主函数中定义TestClass1对象d(1)。据题目要求“输出基类数据成员a的值”,基类为TestClass,利用∷域运算符取其成员a的值。

  • 第5题:

    在下面程序横线处填上适当内容,使程序执行结果为: S=2 S=5 S=9 #include <iostream.h> void sum(int i) {static int s; _________; cout<<"s="<<s<<endl; } void main (void) {int i; for (i=0; i<3;i++) sum(i);


    D D。【解析】由主函数main入手,定义了类D对象obi。其中D为类B和C的公有继承,A是C的虚基类。题目中要求的输出结果为ABCD,依次为类A、类B、类C、类D中构造函数的输出语句。为了保证基类通过多条路径被派生类继承,即保证A只被继承一次,输出一个A,所以不但需要声明A为C的虚基类,同样也要声明A为B的虚基类。