Dichiaratore di riferimento lvalue: &
Contiene l'indirizzo di un oggetto, ma sintatticamente si comporta come un oggetto.
type-id & cast-expression
Note
È 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 di operatore address-of. Quando & identifier è preceduto da un tipo, quale int o char, identifier viene dichiarato come un riferimento al tipo. Quando & identifier 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;
}
Vedere anche
Riferimenti
Argomenti di funzione di tipo Reference