可能重复:
What's the difference between passing by reference vs. passing by value?
如果我有一个函数接受一些参数然后用参数做某事而不需要改变它们的固有值,那么使用传递引用和传递值有什么好处吗?
答案 0 :(得分:4)
是。传递值会复制参数,这可能非常昂贵(甚至不可能)。如果您想通过引用传递但不修改对象,请通过const
- 参考。
作为无法通过值传递的对象的示例:
class Foo {
public:
Foo() {}
private:
Foo(const Foo&); // copy-constructor is not accessible
}
答案 1 :(得分:3)
以下是一般指南:
const
参考