据我了解:当您按值传递时,该函数将对传递的参数进行本地复制并使用该参数;当函数结束时,它将超出范围。当您通过const引用传递时,该函数将使用对无法修改的传递参数的引用。但是,我不理解为什么一个人会选择一个而不是另一个,除非需要修改和返回一个参数。如果您有一个void函数,什么也没有返回,为什么要选择一个?编辑:因此基本上通过const引用传递避免复制对象。那么在什么情况下复制对象是好的?我的意思是,为什么不始终使用const引用,如果它始终可以优化性能呢?
3 回答
![?](http://img1.sycdn.imooc.com/54584f6d0001759002200220-100-100.jpg)
萧十郎
TA贡献1815条经验 获得超13个赞
在某些情况下,复制对象可能会极大地影响性能。考虑一个函数,该参数将是一个参数,std::vector<long>并且您想要传递带有一百万个元素的向量。在这种情况下,您将要在通过值传递时使用const引用。在这个SO问题中,您可以找到关于问题的简单一般规则。
- 3 回答
- 0 关注
- 750 浏览
添加回答
举报
0/150
提交
取消