在传统的C++中,通过值传递到函数和方法对于大型对象来说速度很慢,而且通常不受欢迎。取而代之的是,C++程序员倾向于传递引用,这更快,但这引入了关于所有权的各种复杂问题,特别是关于内存管理(在对象是堆分配的情况下)
现在,在C++11中,我们有了Rvalue引用和移动构造函数,这意味着可以实现一个大型对象(如std::vector
),通过值传入和传出函数的成本很低。
那么,这是否意味着默认情况下应该通过值传递std::vector
和std::string
等类型的实例呢?那么对于自定义对象呢?新的最佳实践是什么?
https://stackoverflow.com/questions/7592630
复制相似问题