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