Freigeben über


Lvalue-Verweisdeklarator: &

Enthält die Adresse eines Objekts, verhält sich jedoch syntaktisch wie ein Objekt.

type-id & cast-expression

Hinweise

Sie können sich einen lvalue-Verweis als einen anderen Namen für ein Objekt vorstellen. Eine lvalue-Verweisdeklaration enthält eine optionale Liste von Bezeichnern, gefolgt von einem Verweisdeklarator. Ein Verweis muss initialisiert werden und kann nicht geändert werden.

Jedes Objekt, dessen Adresse in einen angegebenen Zeigertyp konvertiert werden kann, kann auch in den ähnlichen Referenztyp konvertiert werden. Beispielsweise kann jedes Objekt, dessen Adresse in den Typ char * konvertiert werden kann, auch in den Typ char & konvertiert werden.

Verwechseln Sie Verweisdeklarationen nicht mit der Verwendung des address-of-Operators. Wenn & identifier ein Typ vorangestellt ist, etwa int oder char, wird identifier als Verweis auf den Typ deklariert. Wenn & identifier kein Typ vorangestellt ist, wird er als address-of-Operator verwendet.

Beispiel

Das folgende Beispiel zeigt den Verweisdeklarator, indem ein Person-Objekt und ein Verweis auf dieses Objekt deklariert wird. Da rFriend ein Verweis auf myFriend ist, ändert die Aktualisierung einer der Variablen das gleiche Objekt.

// reference_declarator.cpp
// compile with: /EHsc
// Demonstrates the reference declarator.
#include <iostream>
using namespace std;

struct Person
{
    char* Name;
    short Age;
};

int main()
{
   // Declare a Person object.
   Person myFriend;

   // Declare a reference to the Person object.
   Person& rFriend = myFriend;

   // Set the fields of the Person object.
   // Updating either variable changes the same object.
   myFriend.Name = "Bill";
   rFriend.Age = 40;

   // Print the fields of the Person object to the console.
   cout << rFriend.Name << " is " << myFriend.Age << endl;
}
  

Siehe auch

Referenz

Verweise (C++)

Verweistyp-Funktionsargumente

Verweistyp-Funktionsrückgaben

Verweise auf Zeiger