单选题
有如下程序:
#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 getID()const{return ID;}
}
void show(Con c){cout<<c.getID();}
int main()
{
Con c1;
sllow(c1);
Con c2("B");
show(c2);
return 0;
}
执行上面程序的输出结果是______。
【正确答案】
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”。