下面程序输出的结果是【 】。 include using namespacc std; class A { public:void sho下面程序输出的结果是【 】。include <iostream>using namespacc std;class A {public:void show(){tout<<"A!";}};class B: public A{public:virtual void show(){cout<<"B!";}};class C: public B{public:virtual

题目
下面程序输出的结果是【 】。 include using namespacc std; class A { public:void sho

下面程序输出的结果是【 】。

include <iostream>

using namespacc std;

class A {

public:

void show(){tout<<"A!";}

};

class B: public A{

public:

virtual void show(){cout<<"B!";}

};

class C: public B{

public:

virtual void show(){cout<<"C!";}

};

void show_info(A *i){i->show();}

void main(){

A ia;B ib;C ic;show_info(&ia); show_info(&ib);show_info(&ic);

}


相似考题
更多“下面程序输出的结果是【 】。 include <iostream> using namespacc std; class A { public:void sho ”相关问题
  • 第1题:

    下面程序的输出结果是【】。 include using namespace std; class A {int a,b; public:A

    下面程序的输出结果是【 】。

    include <iostream>

    using namespace std;

    class A

    {

    int a, b;

    public:

    A()

    {

    a = b = 0;

    }

    A(int aa, int bb ) : a(aA) , b(bB)

    {

    cout <<"a="<<a<<","<<"b="<<b<<",";

    }

    ~A()

    {

    cout<<"D";

    };

    int main ( )

    {

    A x, y(2, 3);

    return 0;

    }


    正确答案:a=2b=3DD
    a=2,b=3DD 解析:本题主要考核构造函数与析构函数的应用。主函数中定义 A类对象x时无输出,定义对象y时调用构造函数输出a=2,b=3。在主函数结束前,对象x,y都调用各自的析构函数输出DD。所以最后答案为a=2,b=3DD。

  • 第2题:

    下面程序的输出结果是includeclass example{ int a;public: example(int b) {a=b++

    下面程序的输出结果是 #include<iostream,h> class example { int a; public: example(int b) {a=b++;} void print( ){a=a+1;cout<<a<<"";} void print( )const{cout<<a<<"";} }; void main( ) { example X(3);

    A.22

    B.43

    C.42

    D.32


    正确答案:C
    解析:“++”是右结合的,所以先赋值为3,最后输出3+1;常成员函数只有常对象才能调用,所以输出2。

  • 第3题:

    下面程序输出的结果是( )。 include using namespace std; class A{

    下面程序输出的结果是( )。 #include<iostream> using namespace std; class A{ int X; public: A(int x):x(++x){} ~A(){cout<<x;} }; class B:public A{ int y; public: B(int y):A(y),y(y){} ~B(){cout<<y;}; }; void main(){ B b(3); }

    A.34

    B.43

    C.33

    D.44


    正确答案:A
    解析:对象创建的次序为:先基类,后派生类;析构时,先派生类,后基类。

  • 第4题:

    下面程序输出的结果是【 】。 include using namespace std; class A { public:virtual

    下面程序输出的结果是【 】。

    include <iostream>

    using namespace std;

    class A {

    public:

    virtual void show() {cout<<"A!";

    };

    class B: public A {

    public:

    void show() {cout << "B!";}

    };

    class C: public B{

    public:

    void show(){cout << "C!";}

    };

    void show_info(A &i) {i. show();}

    void main() {

    A ia; B ib; C ic; show_info(ia);show_info(ib); show_info(ic); }


    正确答案:A! A! A!
    A! A! A! 解析:由于基类中没有声明虚函数,故调用的全部是基类的函数。

  • 第5题:

    下面程序的输出结果是()。include using namespace std;class A {public:A( ) {cout<<

    下面程序的输出结果是( )。 #include <iostream> using namespace std; class A { public: A( ) {cout<<"A";} } class B { public: B() {coat<<"B" ;} } class C: public A { public: B b; C() {cout<<"C";} } void mian(){ C c; }

    A.CBA

    B.ABC

    C.ACB

    D.BCA


    正确答案:B
    解析:先执行基类A构造函数输出A,调用类B的构造函数输出B,调用本身构造函数输出C。