( 30 )有如下程序:#include<iostream>using namespace std;public:AA(){ cout<<'1'; }};class BB: public AA{int k;public:BB():k(0){ cout<<'2'; }BB(int n):k(n){ cout<<'3';}}int main(){BB b(4), c;return 0;}运行时的输出结果是A ) 1312B ) 132C ) 32D ) 1412

题目

( 30 )有如下程序:

#include<iostream>

using namespace std;

public:

AA(){ cout<<'1'; }

};

class BB: public AA{

int k;

public:

BB():k(0){ cout<<'2'; }

BB(int n):k(n){ cout<<'3';}

}

int main(){

BB b(4), c;

return 0;

}

运行时的输出结果是

A ) 1312

B ) 132

C ) 32

D ) 1412


相似考题
更多“( 30 )有如下程序:#include&lt;iostream&gt;using namespace std;public:AA(){ cout&lt;&lt;'1'; ”相关问题
  • 第1题:

    有如下程序:include using namespace std;class AA{public: virtual void f() {cout<

    有如下程序: #include <iostream> using namespace std; class AA { public: virtual void f() { cout<< "AA"; } }; class BB : public AA { public: BB() { cout << "BB"; } }; cla

    A.AA

    B.AABBCC

    C.BBAABBCC

    D.BBBBAACC


    正确答案:D
    解析:本题中,函数f()在基类AA中派生类CC中都声明为虚函数,所以采用动态联编。主函数首先定义类AA的对象aa和指针对象p,然后定义了类BB的对象bb,此时调用了类BB的构造函数输出BB。再定义类CC的对象cc,由于类CC是类BB的派生类,所以此时又调用类BB的构造函数输出BB。最后执行语句“p=&cc; p->f();”,输出AA和CC。

  • 第2题:

    有如下程序: include using namespaee std; class A{ public: A( ){cout<<"A";}

    有如下程序:

    include<iostream>

    using namespaee std;

    class A{

    public:

    A( ){cout<<"A";}

    ~A( ){cout<<"A";}

    };

    class B{

    A a;

    public:

    B( ){cout<<"B";}

    ~B( )t cout<<"B";}

    };

    int main( ){

    B b;

    return 0;

    }

    程序的输出结果是______。


    正确答案:ABBA
    ABBA

  • 第3题:

    有如下程序:include using namespace std;class AA{ int n;public: AA(int k):n (k)

    有如下程序: #include <iostream> using namespace std; class AA{ int n; public: AA(int k):n (k) { } int get(){return n; } int get()const{return n+1;} } int main() { AA a(5); const AA b(6); cout<<a.get()<<b.get(); return 0; } 执行后的输出结果是( )。

    A.55

    B.57

    C.75

    D.77


    正确答案:B

  • 第4题:

    有如下程序:includeusing namespace std;class AA{ int n;public: AA(int k):n (k){}

    有如下程序: #include<iostream> using namespace std; class AA{ int n; public: AA(int k):n (k){} int get(){return n;) int get()const{return n+1;} }; int main() { AA a(5); const AA b(6); cout<<a.get()<<b.get(); return 0; } 执行后的输出结果是

    A.55

    B.57

    C.75

    D.77


    正确答案:B
    解析:本题考核常成员函数和函数的重载。所谓函数重载,是指同一个函数名可以对应着多个函数的实现,类AA中定义了两个get()函数,一个为普通成员函数,另一个为常成员函数。一般对象a既可以调用普通成员函数get,也可以调用常成员函数get,但是由于常成员函数不能更新对象的数据成员,所以题中通过对象a调用的函数为普通成员函数get(),返回值为5。常对象b只能调用常成员函数,所以题中通过对象b调用的函数为常成员函数get(),返回值为7。

  • 第5题:

    有如下程序:includeusing namespaee std;class AA{public:AA( ){cout<<'1';}};class

    有如下程序: #include<iostreanl> using namespaee std; class AA{ public: AA( ){cout<<'1';} }; class BB:public AA{ int k; public: BB( ):k(0){eout<<'2';} BB(int n):k(n){cout<<'3';} }; int main( ){ BB,b(4),c; return 0; } 程序的输出结果是

    A.1312

    B.132

    C.32

    D.1412


    正确答案:A
    解析:创建派生类对象时,先调用基类构造函数,然后调用派生类构造函数,b(4)先调用基类构造函数,然后调用BB的带参数构造函数,打印1和3;c调用基类AA的构造函数,然后调用BB的构造函数,打印1和2。故答案为A。