拷贝构造函数的参数为什么必须是const引用?
先看如下代码:
如果这里改成 :
首先编译器这一关就过不了
原因:
那在调用拷贝构造函数的时候
CExample B (A);
const 更多是给程序员的一个限制, 告诉程序员这个变量是只读的。因此为了安全, 一般建议所有的只读变量加const限制以防止程序员犯错。因为复制构造函数是用引用方式传递复制对象,引用方式传递的是地址,因此在构造函数内对该引用的修改会影响源对象。而你在用对象a1构造a2时,自然不希望复制构造函数会改变a1的内容,因此要防止复制构造函数内部修改该引用,所以用const声明。
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/nwd0729/article/details/47973673