问题 单项选择题

有如下程序:
#include<iostream.h>
Using namespace std;
Class Demo

public:
Demo() cout<<“default constructor\n”;
Demo(const Demo &x) cont<<“copy constructor\n”;

Demo usercode(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

答案

参考答案:D

解析: 本题考查的是引用调用,因为函数swap引用调用参数a,所以在swap函数中a的变化会改变主函数中a的值,即a自加1,但b的值并未改变。

选择题
单项选择题