为什么复制构造函数的参数要用引用类型来传递? 5

 我来答
百度网友4e5fecb
2016-01-01 · TA获得超过5820个赞
知道大有可为答主
回答量:3273
采纳率:95%
帮助的人:437万
展开全部
复制构造函数要用引用参数一个重要的原因就是:避免递归调用!从语言规范的角度来说,这只是一种规定。
比如&b=a
表明b是a 的一个引用

从逻辑的角度来说,因为从参数的传递本身就是复制。如果不使用引用类型,复制构造函数传递参数时又会调用拷贝构造函数,造成递归调用了。故用引用类型来传递。
百度网友c6c78e9
2007-10-05 · TA获得超过2283个赞
知道小有建树答主
回答量:620
采纳率:0%
帮助的人:1016万
展开全部
复制构造函数要用引用参数一个重要的原因就是:避免递归调用!
如果定义如下的构造函数:
Comp::Comp(Comp rhs);
那么当用一个Comp对象初始化另一个Comp对象时,如
Comp abc=ab;//假设bc是一个已存在的Comp对象
该复制构造函数就会被无限制地递归下去:调用Comp(Comp)初始化第一层的参数,然后……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
高原狼人
2007-10-05 · TA获得超过924个赞
知道小有建树答主
回答量:671
采纳率:100%
帮助的人:0
展开全部
引用就相当于取一个别名
传递的时候不容易出错

实际上引用传递也是地址传递比如&b=a
表明b是a 的一个引用
在函数调用的时候
实参传递给形参,引用的两个参数是占用同一段内存单元的,不像指针那样形参要占用别的内存单元
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式