问题
单项选择题
有如下程序:
#include<iostream>
using namespaee std;
class Demo
public:
Demo( )cout<<"default constructor\n";
Demo(const Demo &x)cout<<"copy constructor\n";
;
Derno userCore(DemoB) Demo c(B) ;return c;
int main( )
Demo a,d;
cout<<"calling userCode( )\n";
d=userCode(
A.;
return 0;
执行上面程序的过程中,构造函数Demo( )和Demo(const Demo &x)被调用的次数分别为A) 1和1
B.1和2
C.2和3
D.2和4
答案
参考答案:C
解析: 无参构造函数调用和复制构造函数调用的Demo a,d;调用2次无参构造函数Demo( ),在Demo userCore(Demo B) {Demo c(B) ;return c;}函数中,Demo b调用一次复制构造函数,Demo c(B) 调用一次复制构造函数,在函数返回值时还要调用一次复制构造函数,故Demo(const Demo &x)的调用次数为3次。