C++的复制构造函数

复制构造函数能够在定义一个新的对象时通过已有的对象进行实例化,在复制构造函数中可以进行数据成员的浅拷贝,也可以进行指针指向的数据的深拷贝。

在声明一个类的复制构造函数时不能使用本类型作为形参:
class A
{
public:
A(A other){}; //错误
};
如果准许这样做,那么在将实参传递给形参时,为了生成实参的副本,需要在复制构造函数调用时再临时生成一个类型,而这个类型的生成过程又会调用复制构造函数,这样就会无休止的递归调用导致栈溢出。所以C++的标准不准许复制构造函数传值参数。
解决方式:
A(const A& other)
利用引用或者指针来做形参。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值