有如下程序: #include<iostream> using namespace std; Class Con { char ID; public: Con():ID(’A’){cout<<1;} Con(

admin2013-02-27  27

问题 有如下程序:    #include<iostream>    using namespace std;    Class Con    {    char ID;    public:    Con():ID(’A’){cout<<1;}    Con(char ID) :ID(ID) {cout<<2;}    Con(Con& c):ID(c.getID()){cout<<3;}    char get1D()const{return ID;}    };    void show(Con c){cout<<c.get1D();}    int main()    {    Con c1;    show(c1);    Con c2(’B’);    show(c2);    return 0;    }    执行上面程序的输出是(    )。

选项 A、13A23A
B、23A13B
C、13A23B
D、13B23A

答案C

解析 Con c1定义c1对象,调用Con的无参数构造函数,输出1,ID值变为A,执行show(c1)时会调用拷贝构造函数,将c1对象的值拷贝给show()函数的形参,此时输出3,然后在show()中输出 c1的ID值A,Con c2(’B’)定义c2对象,调用Con(char ID) 构造函数,输出2,c2的ID值为B,show(c2)执行时先调用拷贝构造函数输出3,然后输出B.因此程序输出结果为“13A23B”。
转载请注明原文地址:https://kaotiyun.com/show/OcVp777K
0

最新回复(0)