为了账号安全,请及时绑定邮箱和手机立即绑定

为什么通过const引用而不是按值传递?

为什么通过const引用而不是按值传递?

C++
至尊宝的传说 2019-10-18 10:55:29
据我了解:当您按值传递时,该函数将对传递的参数进行本地复制并使用该参数;当函数结束时,它将超出范围。当您通过const引用传递时,该函数将使用对无法修改的传递参数的引用。但是,我不理解为什么一个人会选择一个而不是另一个,除非需要修改和返回一个参数。如果您有一个void函数,什么也没有返回,为什么要选择一个?编辑:因此基本上通过const引用传递避免复制对象。那么在什么情况下复制对象是好的?我的意思是,为什么不始终使用const引用,如果它始终可以优化性能呢?
查看完整描述

3 回答

?
萧十郎

TA贡献1815条经验 获得超12个赞

在某些情况下,复制对象可能会极大地影响性能。考虑一个函数,该参数将是一个参数,std::vector<long>并且您想要传递带有一百万个元素的向量。在这种情况下,您将要在通过值传递时使用const引用。在这个SO问题中,您可以找到关于问题的简单一般规则。


查看完整回答
反对 回复 2019-10-18
  • 3 回答
  • 0 关注
  • 668 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信