Latest web development tutorials

C ++ als Rückgabewert des Referenz

C ++ Referenzen C ++ Referenzen

Durch die Verwendung von Referenzen anstelle von Zeigern, macht C ++ Programme leichter zu lesen und zu pflegen. C ++ Funktion kann eine Referenz zurück und gibt einen Zeiger auf eine ähnliche Weise.

Wenn die Funktion eine Referenz zurückgibt, gibt sie einen Zeiger auf den impliziten Rückgabewert. Somit kann die Funktion in der linken Seite einer Zuweisung platziert werden. Betrachten wir zum Beispiel die folgende einfache Prozedur:

#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;
}

Wenn der obige Code kompiliert und ausgeführt wird, erzeugt es die folgenden Ergebnisse:

改变前的值
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

Wenn eine Referenz Rückkehr, achten Sie auf das referenzierte Objekt kann sich außerhalb des Geltungsbereichs nicht gehen. Es gibt einen Verweis auf eine lokale Variable nicht legal ist, können Sie jedoch einen Verweis auf eine statische Variable zurück.

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

C ++ Referenzen C ++ Referenzen