Sdílet prostřednictvím


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-seqopt optptr-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