问题
单项选择题
有如下程序:
#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的值并未改变。