C++ Verwenden von Referenzen als Rückgabewerte
Die Verwendung von Referenzen anstelle von Zeigern macht C++-Programme leichter lesbar und wartbar. C++-Funktionen können eine Referenz auf ähnliche Weise zurückgeben wie einen Zeiger.
Wenn eine Funktion eine Referenz zurückgibt, gibt sie einen impliziten Zeiger auf den Rückgabewert zurück. Auf diese Weise kann die Funktion auf der linken Seite einer Zuweisungsanweisung stehen. Betrachten Sie zum Beispiel das folgende einfache Programm:
Beispiel
Wenn der obige Code kompiliert und ausgeführt wird, liefert er 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 zurückgegeben wird, ist darauf zu achten, dass das referenzierte Objekt nicht außerhalb des Gültigkeitsbereichs gerät. Daher ist es unzulässig, eine Referenz auf eine lokale Variable zurückzugeben, aber eine Referenz auf eine statische Variable kann zurückgegeben werden.
Das folgende Beispiel veranschaulicht die Rückgabe einer Referenz auf eine statische Variable:
Beispiel
using namespace std;
// eine Referenz auf eine statische Variable zurückgeben
int& getStaticRef() {
static int num = 5; // statische Variable
return num;
}
int main() {
int& ref = getStaticRef(); // eine Referenz auf eine statische Variable abrufen
cout << "Initialwert:" << ref << endl;
ref = 10; // den Wert der statischen Variable ändern
cout << "Wert nach Änderung:" << ref << endl;
cout << "Wert nach erneutem Aufruf der Funktion:" << getStaticRef() << endl;
return 0;
}
Die Funktion getStaticRef() gibt eine Referenz auf die statische Variable num zurück.
Das Ausgabeergebnis ist:
初始值:5 修改后的值:10 再次调用函数后的值:10Weitere Erweiterungen