问题
单项选择题
有如下程序:
#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()constreturn 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”。