Deklarator odwołania do wartości L: &
Przechowuje adres obiektu, ale zachowuje się syntaktycznie jak obiekt.
type-id & cast-expression
Uwagi
Odwołanie lvalue można traktować jako inną nazwę obiektu.Deklaracja odwołania lvalue składa się z opcjonalnej listy specyfikatorów następującej po deklaracji odwołania.Odwołanie musi zostać zainicjowane i nie może być zmieniane.
Dowolny obiekt, którego adresy mogą być konwertowane na typ danego wskaźnika można podobnie konwertować na typ odwołania.Na przykład, każdy obiekt, którego adres może zostać przekonwertowany na typ char * można również konwertować na typ char & .
Nie należy mylić deklaracji odwołania z wykorzystaniem operatora address-of.Gdy & identifier jest poprzedzone typem, takim jak int lub char, identifier jest zadeklarowane, jako odwołanie do typu.Gdy & identifier nie jest poprzedzone przez określony typ, użyciem jest operator address-of.
Przykład
W poniższym przykładzie zademonstrowano deklarator odwołania, deklarując obiekt Person i odwołanie do tego obiektu.Ponieważ rFriend jest to odwołanie do myFriend, aktualizuje zmiany zmiennej tego samego obiektu.
// 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;
}
Zobacz też
Informacje
Argumenty funkcji typu odwołania