下面程序的结果是includeclass A{public: A(){cout下面程序的结果是 #include<iostream.h> class A { public: A(){cout<<"construtA" <<endl;} virtual ~A() {cout << "destructA" <<endl;}}; class B:public A { }; class C:public A { }; class D:public B,public C { }; void main() { Dd;

题目
下面程序的结果是includeclass A{public: A(){cout<<"construtA"<

下面程序的结果是 #include<iostream.h> class A { public: A(){cout<<"construtA" <<endl;} virtual ~A() {cout << "destructA" <<endl;}}; class B:public A { }; class C:public A { }; class D:public B,public C { }; void main() { Dd;}

A.constructA

B.constructA

C.constmctA

D.constmctA destructA constructA constmctA constructA destructA constructA constructA destructA destructA constructA destructA dest


相似考题
参考答案和解析
正确答案:B
解析:类D继承了类C和类B,所以在构造的时候分别构造类B和类C。
更多“下面程序的结果是#include<iostream.h>class A{public: A(){cout<<"construtA"<<endl;} virtual~ ”相关问题
  • 第1题:

    下列程序的运行结果是______。include class Base { public: void f(int x){cout<<“B

    下列程序的运行结果是______。

    include<iostream.h>

    class Base

    {

    public:

    void f(int x){cout<<“Base:”<<x<<endl;}

    );

    class Derived:public Base

    {

    public:

    void f(char*str){cout<<“Derived:”<<str<<endl;}

    };

    void main(void)

    {

    Base*pd=ne


    正确答案:Base:97。
    Base:97。 解析: 本题主要考查两个知识点,一是基类指针可以指向派生类对象,并可以访问派生类的所有成员。二是在函数重载中进行隐式类型转换。如pd->f(‘a’);系统到底调用哪个重载函数呢?实参既不是派生类中的形参,也不是基类中f函数的形参类型。此时系统根据就近原则和从高优先级到低优先级的规则尝试隐式转换。单字符更接近整数,故调用的是基类的f函数。

  • 第2题:

    下面程序输出的结果为 #include"iostream.h” class A { public: A(){cout<<"CLASSA"<<endl;} ~A() {} }; class B:public A { public: B(){cout<<"CLASS B"<<endl;} ~B(){} }; void main() { A*p; p=new B;

    A.CLASS A CLASS B CLASS B CLASS B

    B.CLASS A CLASS B CLASS A CLASS B

    C.CLASS A CLASS B CLASS B

    D.CLASS A CLASS B


    正确答案:C

  • 第3题:

    以下程序的执行结果是______. include< c1ass A { public: virtual void funl ()

    以下程序的执行结果是______.

    include<<iostream.h>

    c1ass A

    {

    public:

    virtual void funl () { cout<<"A fun1"<<endl;}

    virtual void fun2 () {cout<<"A fun2"<<endl;

    void fun3 () {cout<<" A fun 3 "<<endl:)

    void fun4 () {cout<<" A fun4 "<<endl:}


    正确答案:B fun1 A fun2 A fun3 A fun4
    B fun1 A fun2 A fun3 A fun4

  • 第4题:

    以下程序的执行结果是______。 include class base { public: virtual void who(){c

    以下程序的执行结果是______。

    include<iostream.h>

    class base

    {

    public:

    virtual void who(){cout<<"base class"<<endl:}

    };

    class derrvel:public base

    {

    public:

    void who(){cout<<"derivel class"<<endl:}

    };

    class derive2;public base

    {

    public:

    void who() {cout<<"derive2 class"<<endl;}

    };

    void main()

    {

    base obj1,*P;

    derive1 obj2;

    derive2 obj3:

    p=&obj1;

    p->who();

    p=&obj2:

    p->who();

    p=&obj3;

    p->who();

    }


    正确答案:base class derivel class derive2 class
    base class derivel class derive2 class

  • 第5题:

    下面程序的运行结果是()。includeusing namespace std;class A{public: virtual~A() {

    下面程序的运行结果是( )。 #include<iostream> using namespace std; class A { public: virtual~A() { cout<<"call A::~A()"<<endl;} }; class B:public A { char * p; public: B(int i) { p=new char[i];} ~B() { delete(p); cout<<"call B::~B()"; } }; void main() { A * a=new B(8); delete a; }

    A.call B::~B()call A::~A()

    B.call B::~B()

    C.call A::~A()

    D.call A::~A()call B::~B()


    正确答案:A
    解析:本题考查虚函数的使用,通过基类指针指向派生类的对象,从而动态地访问派生类对象中的虚函数。本题若没有把A类中的析构函数说明为virtual,则答案为C。