问题 单项选择题

有如下程序: #include<iostream.h> using namespace std; class TestClass { public: TestClass (){cout<<"default constructor\n";} TestClass(const TestClass &x){cont<<"copy constructor\n";} TestClass userCode(TestClass b){TestClass c(b);return 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的user(ode()成员函数,所以是3次。

单项选择题
单项选择题 A1/A2型题