何时将引用用作C ++中的参数

可能重复:
传递引用与价值传递之间有什么区别?

如果我有一个函数接受一些参数,然后在不需要改变其固有值的情况下对参数进行一些操作,那么使用传递参考与传值是否有什么好处?


是。 通过价值传递参数可能非常昂贵(甚至不可能)。 如果你想通过引用传递,但不修改对象,请通过const -reference传递。

作为无法按值传递的对象的示例:

class Foo {
public:
    Foo() {}
private:
    Foo(const Foo&); // copy-constructor is not accessible
}

以下是一般指南:

  • 通过参考时
  • 你需要对调用者可见的对象产生副作用
  • 或者因为缺乏可访问的拷贝构造函数或某些东西而无法传递值,所以您需要副作用
  • 当你有时通过const引用传递
  • 一个大对象
  • 和/或你不能通过价值传递
  • 和/或不需要副作用
  • 当值时传递
  • 该对象很小
  • 和/或你不需要副作用
  • 和/或你需要一个值的副本来处理
  • 链接地址: http://www.djcxy.com/p/20609.html

    上一篇: When to use references as parameters in C++

    下一篇: C++ Update Object attributes using set function