单选题
有如下程序:
#include
using namespace std;
class TV{
public:
TV(int s=41):size(s) { }
TV(const TV &r):size(r.size) { }
~TV() { }
private:
int size;
};
TV fun(TV &u) { TV t=u; return t; }
int main() { TV x,y; x=fun(y); return 0; }
则 TV 类的复制构造函数被调用的次数是
【正确答案】
B
【答案解析】解析:拷贝构造函数,是一种特殊的构造函数,它由编译器调用来完成一些基于同一类的其他对象的构建及初始化。拷贝构造函数要调用基类的拷贝构造函数和成员函数。本题中调用fun函数时调用了一次复制构造函数,函数返回执行x=fun(y)时又调用了一次复制构造函数,所以总共2次。B选项正确。