问题
单项选择题
有如下程序:
#include<iostream.h>
using namespace std;
class Demo
public:
Demo() cout<<"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(
A.;
&n
答案
参考答案:C
解析: 此题考查的是虚函数的应用。C++语言中,在创建一个对象时,会自动调用类的构造函数,所以语句“Demo a,d;”将调用函数Demo()两次。当一个对象作为实参传递给函数时,为初始化形参,要调用复制构造函数:在函数返回一个对象时调用复制构造函数。所以语句“d=userCode(a);”调用复制构造函数3次。