📜  C++通过引用返回(1)

📅  最后修改于: 2023-12-03 15:14:04.917000             🧑  作者: Mango

C++通过引用返回

在C++中,返回函数值时可以使用引用(&),可以通过引用返回函数中的值。引用返回意味着在函数中所返回的值是存在于调用者的变量中的,这意味着我们可以直接在一个函数中修改调用函数中的变量。

函数通过引用返回值的方法,可以使代码更加简介易懂,同时在处理大型结构时也能够大幅提高代码效率,因为传递引用比复制结构要更快。

引用返回的函数必须按如下方式声明:

Type& function_name( parameters )
{
   ...
}

这包括返回类型、函数名称和参数列表。返回类型是一个类型名称的引用。类型名称必须存在于函数定义的作用域中,或者定义的作用域在函数定义之前。

使用引用返回的函数示例:

#include <iostream>
#include <ctime>

using namespace std;

// function to generate and return random numbers.
int& getRandom( )
{
  static int r;

  // set the seed
  srand( (unsigned)time( NULL ) );
  r = rand();

  cout << "随机数为: " << r << endl;

  return r;
}

// main function to call above defined function.
int main ()
{
  // 调用 getRandom 函数
  int& r = getRandom();

  cout << "第一次随机数为: " << r << endl;
  cout << "第二次随机数为: " << getRandom() << endl;

  return 0;
}

输出结果:

随机数为: 10935
第一次随机数为: 10935
随机数为: 26192
第二次随机数为: 26192

在上面的示例中,getRandom() 函数包含了一个静态的局部变量 static int r,它在函数内部初始化和修改,在函数外部提供对它的引用。对 getRandom() 的第一次调用返回一个随机数,并将该数存储在由该函数定义的静态变量中。对getRandom()的第二次调用产生了一个新的随机数,并替换先前存储的值。

引用返回的注意事项:

  • 永远不要从函数返回指向局部变量的引用.
  • 引用可以作为函数的左值返回.