Deklarátor odkazu Lvalue: &
Uchovává adresu objektu, ale chová se syntakticky stejně jako objekt.
Syntaxe
lvalue-reference-type-id
:
type-specifier-seq
&
attribute-specifier-seq
opt opt ptr-abstract-declarator
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 &
.
Nezaměňujte deklarace odkazů s použitím operátoru adresy. &
Pokud je identifikátor před typem, například int
nebo char
, identifikátor deklarován jako odkaz na typ. Pokud &
identifikátor není před typem, je použití operátoru adresy.
Příklad
Následující příklad ukazuje deklarátor odkazu deklarováním objektu Person
a odkazu na tento objekt. Vzhledem k tomu, že rFriend
je odkazem na myFriend
, úprava 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;
}
Bill is 40
Viz také
Odkazy
Argumenty funkce typu odkaz
Vrátí funkci typu odkazu.
Odkazy na ukazatele