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

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

原文链接: https://www.cnblogs.com/lovelyxia/archive/2011/03/05/1971854.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

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

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/21857

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月7日 下午11:48
下一篇 2023年2月7日 下午11:52

相关推荐