Deklarátor odkazu Lvalue: &
Uchovává adresu objektu, ale chová se syntakticky, stejně jako objekt.
type-id & cast-expression
Poznámky
Odkaz l hodnoty si lze představit jako jiný název objektu.Deklarace odkazu l hodnoty se skládá z volitelného seznamu specifikátorů, který je následován deklarátorem odkazu.Odkaz musí být inicializován a nelze jej změnit.
Libovolný objekt, jehož adresu lze převést na daný typ ukazatele, lze převést na podobný typ odkazu.Například každý objekt, jehož adresu lze převést na typ char *, lze také převést na typ char &.
Nepleťte si deklaraci odkazu s použitím operátoru z adresy.Předchází-li & identifier typ, jako například int nebo char, je identifier deklarován jako odkaz na typ.Nepředchází-li & identifier typ, využití představuje operátor z adresy.
Příklad
Následující příklad deklarátor odkaz deklarováním objektu Person a odkazu na tento objekt.Vzhledem k tomu, že rFriend je odkaz na myFriend, upravení proměnné změní stejný 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;
}