有如下程序:
#include<iostream.h>
using namespace std;
class TestClass
public:
TestClass () cout<<"default constructor\n";
TestClass (const TestClass &x)cont<<"copyconstructor\n";
;
TestClass userCode(TestClass b) TestClass c(b);retum c;
int main()
TestClass a,d;
cout<<"calling userCode()\n";
d=userCode(a);
return 0;
执行上面程序的过程中,构造函数TestClass ()和TestClass (const TestClass & x)被调用的次数分别是( )。
A) 2次 3次
B) 3次 2次
C) 都是2次
D) 都是3次
参考答案:A
解析: 由主函数入手,定义了类TestClass的对象a和d,当类对象进入其作用域时调用构造函数,构造函数在建立对象时由系统自动执行,而且只执行一次。因为定义了两个对象,所以构造函数TestClass()被调用的次数是2。“d=userCode(a);”语句d中调用成员为a的userCode()成员函数,所以是3次。