最佳答案
在传统的 C + + 中,通过值传递到函数和方法对于大型对象来说是很慢的,并且通常不受欢迎。相反,C + + 程序员倾向于传递引用,这样更快,但是会引入各种各样关于所有权的复杂问题,特别是关于内存管理的问题(在对象是堆分配的情况下)
现在,在 C + + 11中,我们有了 Rvalue 引用和 move 构造函数,这意味着可以实现一个大型对象(比如 std::vector
) ,通过值传入和传出函数非常便宜。
那么,这是否意味着默认情况下应该通过值传递类型(如 std::vector
和 std::string
)的实例?定制对象呢?新的最佳实践是什么?