重新思考 C 11 中的值传递
在 C 世界中,传统上不鼓励大规模使用值传递由于性能问题而产生的对象。然而,C 11 中右值引用和移动构造函数的引入为高效传递对象开辟了新的可能性。
按值传递现在是最佳默认值吗?
根据行业专家 Dave Abrahams 的说法,如果需要在函数体内进行复制,则按值传递 std::vector 和 std::string 等大型对象是合理的。这允许编译器执行优化,消除了程序员显式复制的需要。
优点:
自定义对象:
对于自定义对象,通过引用传递 const 仍然是一个可行的选项,因为它提供灵活性并最大限度地减少无意修改原始对象的风险。
最佳实践:
示例:
要实现推荐模式,值构造函数可以编写如下:
以上是现代 C 中大对象应该默认值传递吗?的详细内容。更多信息请关注PHP中文网其他相关文章!