您的位置:首页 > 其它

拷贝构造函数的形参为何应该是const Type& src

2011-03-05 21:53 274 查看
class A
{
private:
int value;
public:
A(int value){
this->value = value;
}
A(A src){
this->value = src.value;
}
};

int main(int argc, char* argv[])
{
A a = 0;
A b = a;
return 0;
}


如果像上面的程序那样,拷贝构造函数是传值,那么在执行该函数的时候要copy一份对象,就要调用copy构造函数,造成了死循环调用

为了避免,C++不允许拷贝构造函数所传值。

另外拷贝构造函数对于被拷贝的对象来说,是不会修改它的,为了避免修改,所以采用了const 引用

因此拷贝构造函数的形参形式一般是

const Type& src
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐