Latest web development tutorials

C ++ comme la valeur de retour de la référence

Les références C + Les références C +

En utilisant des références au lieu de pointeurs, C ++ rend les programmes plus faciles à lire et à maintenir. La fonction C de peut renvoyer une référence, et renvoie un pointeur d'une manière similaire.

Lorsque la fonction renvoie une référence, il renvoie un pointeur sur la valeur de retour implicite. Ainsi, la fonction peut être placé sur le côté gauche d'une instruction d'affectation. Par exemple, considérons la procédure simple suivante:

#include <iostream>
#include <ctime>
 
using namespace std;
 
double vals[] = {10.1, 12.6, 33.1, 24.1, 50.0};
 
double& setValues( int i )
{
  return vals[i];   // 返回第 i 个元素的引用
}
 
// 要调用上面定义函数的主函数
int main ()
{
 
   cout << "改变前的值" << endl;
   for ( int i = 0; i < 5; i++ )
   {
       cout << "vals[" << i << "] = ";
       cout << vals[i] << endl;
   }
 
   setValues(1) = 20.23; // 改变第 2 个元素
   setValues(3) = 70.8;  // 改变第 4 个元素
 
   cout << "改变后的值" << endl;
   for ( int i = 0; i < 5; i++ )
   {
       cout << "vals[" << i << "] = ";
       cout << vals[i] << endl;
   }
   return 0;
}

Lorsque le code ci-dessus est compilé et exécuté, il produit les résultats suivants:

改变前的值
vals[0] = 10.1
vals[1] = 12.6
vals[2] = 33.1
vals[3] = 24.1
vals[4] = 50
改变后的值
vals[0] = 10.1
vals[1] = 20.23
vals[2] = 33.1
vals[3] = 70.8
vals[4] = 50

Lors du retour d'une référence, faites attention à l'objet référencé ne peut pas sortir du champ d'application. Il renvoie une référence à une variable locale est pas légal, cependant, vous pouvez renvoyer une référence à une variable statique.

int& func() {
   int q;
   //! return q; // 在编译时发生错误
   static int x;
   return x;     // 安全,x 在函数作用域外依然是有效的
}

Les références C + Les références C +