问题 单项选择题

有如下程序:
#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次。

单项选择题 案例分析题
问答题 简答题