有如下程序: #include<iostream> usingnamespacestd; classCon charID; public: Con():ID(A){cout<<1;} Con(charID):ID(ID){eout<<2;} Con(Con&c):ID(c.getID()){cout<<3;} chargetID()corlst{returnID;} }; voidshow(Conc)(cout<<C.getID();} intmain() { Conc1:show(c1); Conc2(

题目

有如下程序: #include<iostream> usingnamespacestd; classCon charID; public: Con():ID(A){cout<<1;} Con(charID):ID(ID){eout<<2;} Con(Con&c):ID(c.getID()){cout<<3;} chargetID()corlst{returnID;} }; voidshow(Conc)(cout<<C.getID();} intmain() { Conc1:

show(c1); Conc2(B); show(c2); return0; } 执行上面程序的输出是( )。

A.13A23A

B.23A13B

C.13A23B

D.13823A


相似考题
更多“有如下程序: #include&lt;iostream&gt; usingnamespacestd; classCon charID; public: Con() ”相关问题
  • 第1题:

    有如下程序:includeusing namespace std;classA{public:A(){cout<<"A";}};class B{pu

    有如下程序: #include<iostream> using namespace std; classA { public: A(){cout<<"A";} }; class B{public:B(){cout<<"B";}}; class C:public A { B b; public: C(){cout<<"C";} }; int main(){C obj;return 0;} 执行后的输出结果是( )

    A.ABC

    B.BAC

    C.ACB

    D.CBA


    正确答案:A

  • 第2题:

    有如下程序: include using namespace std; class PARENT { public: PARENT() { cout

    有如下程序:

    include <iostream>

    using namespace std;

    class PARENT

    {

    public:

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

    };

    class SON : public PARENT

    {

    public:

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

    };

    int main()

    {

    SON son;

    PARENT *p;

    p = &son;

    return 0;

    }

    执行上面程序的输出是______。


    正确答案:PARENTSON
    PARENTSON 解析:此题考查的是派生类的构造。主函数开始在定义SON类的对象son时,会先执行PARENT类的构造函数再执行SON类的构造函数,输出 “PAKENTSON”;接下来的语句定义PARENT和让指针p指向son对象,都并未创建任何对象,所以不会调用构造函数。故最终的输出结果是:PARENTSON。

  • 第3题:

    有如下程序: #include(iostream> usingnamespacestd; classCon { charID; public: Con( ):ID('A){cout<<1;} Con(charID):ID(ID){cout((2;) Con(Con8Lc):ID(c.getlD( )){cout<<3;} chargetID( )const{returnID;} }; voidshow(Conc){cout<<C.getlD( );} intmain( ) { Conc1; show(c1); Conc2('B'); show(c2); return0; 执行上面程序的输出结果是( )。

    A.13A23A

    B.23A13B

    C.13A23B

    D.13823A


    正确答案:C
    C。【解析】Concl定义cl对象,调用Con的无参数构造函数,输出1,ID值变为A,执行show(c1)时会调用拷贝构造函数,将cl对象的值复制给show函数的形参,此时输出3,然后在show中输出cl的lD值A,Conc2('B')定义c2对象,调用Con(charID)构造函数,输出2,c2的ID值为B,show(c2)执行时先调用拷贝构造函数输出3,然后输出B。因此程序输出结果为“13A23B”。

  • 第4题:

    有如下程序:includeusing namespace std;class BASE{public:~BASE( ){cout<<"BASE";}

    有如下程序: #include<iostream> using namespace std; class BASE{ public: ~BASE( ){cout<<"BASE";} }; class DERIVED:public BASE{ public: ~DERIVED( ){cout<<"DERIVED";} }; int main( ){DERIVED x;return 0;} 程序的输出结果是

    A.BASE

    B.DERIVED

    C.BASEDERIVED

    D.DERIVEDBASE


    正确答案:D
    解析:基类和派生类的析构函数的执行顺序是先执行派生类的析构函数,最后执行基类的析构函数;故先执行DIVERED的析构函数,后执行BASE的析构函数。

  • 第5题:

    有如下程序: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。