有如下程序: #include using namespace std; class TV{ public: TV(int s=41):size(s) { }

admin2015-07-22  55

问题 有如下程序:
       #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 类的复制构造函数被调用的次数是

选项 A、1次
B、2次
C、3次
D、4次

答案B

解析 拷贝构造函数,是一种特殊的构造函数,它由编译器调用来完成一些基于同一类的其他对象的构建及初始化。拷贝构造函数要调用基类的拷贝构造函数和成员函数。本题中调用fun函数时调用了一次复制构造函数,函数返回执行x=fun(y)时又调用了一次复制构造函数,所以总共2次。B选项正确。
转载请注明原文地址:https://jikaoti.com/ti/FhE0FFFM
0

最新回复(0)