函数何时必须在c ++中返回引用

aha*_*ala 6 c++

在c ++中,在什么情况下我们必须从函数返回引用?我理解使用引用作为函数输入,但对于函数输出,为什么我们不能只返回值或指针?

jrs*_*jrs 9

引用用于为函数的返回值提供赋值.听起来很奇怪,但作为一个例子,c ++中的数组赋值运算符实际上是在index参数处返回对元素的引用,以便可以将其赋值给,例如

class Array {
 public:
  int& operator[] (const int& index);
  ...
};
Run Code Online (Sandbox Code Playgroud)

允许以下语法:

Array a;
a[4] = 192;
Run Code Online (Sandbox Code Playgroud)

受到永远有用的C++ FAQ的启发:

https://isocpp.org/wiki/faq/references#returning-refs

  • +1用于引用C++ FAQ (3认同)