Condividi tramite


Dichiaratore di riferimento Lvalue: &

Contiene l'indirizzo di un oggetto, ma sintatticamente si comporta come un oggetto.

Sintassi

lvalue-reference-type-id:
type-specifier-seq&attribute-specifier-seqopt opt optptr-abstract-declarator

Osservazioni:

È possibile considerare un riferimento lvalue come nome alternativo per un oggetto. Una dichiarazione di riferimento lvalue è costituita da un elenco facoltativo di identificatori seguiti da un dichiaratore di riferimento. Un riferimento deve essere inizializzato e non può essere modificato.

Qualsiasi oggetto il cui l'indirizzo può essere convertito in un dato tipo di puntatore, può anche essere convertito in un tipo di riferimento simile. Ad esempio, qualsiasi oggetto il cui l'indirizzo può essere convertito in un tipo char *, può anche essere convertito in un tipo char &.

Non confondere le dichiarazioni di riferimento con l'uso dell'operatore address-of. Quando l'identificatore è preceduto da un tipo, ad esempio int o char, l'identificatore&viene dichiarato come riferimento al tipo. Quando &l'identificatore non è preceduto da un tipo, l'utilizzo è quello dell'operatore address-of.

Esempio

Nell'esempio seguente viene illustrato il dichiaratore di riferimento dichiarando un oggetto Person e un riferimento a tale oggetto. Poiché rFriend è un riferimento a myFriend, l'aggiornamento delle variabili modifica lo stesso oggetto.

// 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

Vedi anche

Riferimenti
Argomenti della funzione di tipo riferimento
Restituisce una funzione di tipo riferimento
Riferimenti ai puntatori