探索更多,找到答案,确定如何在旧帖子中传递参数(对重复的抱歉)
- 如果函数意图通过副作用改变参数,则使用非const引用。
- 如果函数不修改其参数且参数为基本类型,则按值传递。
- 否则,除以下情况外,请按const引用方式传递参数
- 如果函数需要对const引用进行复制,请按值传递参数。
[原始帖子请见下文]
我想总结一下通过值、const值、引用、const引用、指针、const指针来传递的使用方法,请纠正我并给我建议。
- 关于引用和指针,请尽可能使用const(感谢所有人)。
- 传递引用和指针之间没有性能差异。
- 当大小不大于指针时(感谢Mark Ransom),请按值传递。
还有一些问题:
- 我很少看到通过const值传递。它有用吗?还是编译器会检测传递值的const性质?
- const引用占用太多空间。我可以仅使用按值传递吗?现代编译器是否会对其进行优化,以不牺牲性能?
根据juanchopanza提到的文章“要速度?按值传递”,我添加了一个项目。
- 如果您将复制您的参数,请按值传递它们,并让编译器进行复制,而不是通过const引用传递它们并在函数体中自行复制它们。
非常感谢!