单选题 有如下程序:
#include<iostream.h>
using namespace std;
class Demo

public:
Demo() cont<<"default constructor/n";
Demo(const Demo &x) cont<<"copy constructor/n";

Demo userCode(Demo b)Demo c(b);return c;
int main()

Demo a,d;
cout<<"calling userCode()/n";
d=userCode(

【正确答案】
【答案解析】[解析] 本题考核构造函数的应用,有一定的深度。函数Demo()为构造函数,而 Demo(const Demo &x)为复制构造函数。C++在创建一个对象时,会自动调用类的构造函数,所以语句“Demo a,d;”将调用函数Demo()2次。当一个对象作为实参传递给函数时为初始化形参,要调用拷贝构造函数;在函数返回一个对象时调用拷贝构造函数。由此可知语句“d=userCode(a);”调用复制构造函数3次。