Riferimenti C ++
Una variabile di riferimento è un alias, ovvero un altro nome per una variabile già esistente. Dopo che un riferimento è stato inizializzato con una variabile, è possibile utilizzare il nome della variabile o il nome del riferimento per fare riferimento alla variabile.
Riferimenti vs puntatori
I riferimenti sono spesso confusi con i puntatori, ma le tre principali differenze tra riferimenti e puntatori sono:
Non puoi avere riferimenti NULL. Devi sempre essere in grado di presumere che un riferimento sia collegato a un archivio legittimo.
Una volta inizializzato un riferimento a un oggetto, non può essere modificato per fare riferimento a un altro oggetto. I puntatori possono essere puntati su un altro oggetto in qualsiasi momento.
Un riferimento deve essere inizializzato quando viene creato. I puntatori possono essere inizializzati in qualsiasi momento.
Creazione di riferimenti in C ++
Pensa al nome di una variabile come a un'etichetta attaccata alla posizione della variabile in memoria. Puoi quindi pensare a un riferimento come una seconda etichetta attaccata a quella posizione di memoria. Pertanto, è possibile accedere al contenuto della variabile tramite il nome della variabile originale o il riferimento. Ad esempio, supponiamo di avere il seguente esempio:
int i = 17;
Possiamo dichiarare le variabili di riferimento per i come segue.
int& r = i;
Leggi il & in queste dichiarazioni come reference. Quindi, leggi la prima dichiarazione come "r è un riferimento intero inizializzato su i" e leggi la seconda dichiarazione come "s è un riferimento doppio inizializzato su d.". L'esempio seguente fa uso di riferimenti su int e double -
#include <iostream>
using namespace std;
int main () {
// declare simple variables
int i;
double d;
// declare reference variables
int& r = i;
double& s = d;
i = 5;
cout << "Value of i : " << i << endl;
cout << "Value of i reference : " << r << endl;
d = 11.7;
cout << "Value of d : " << d << endl;
cout << "Value of d reference : " << s << endl;
return 0;
}
Quando il codice precedente viene compilato insieme ed eseguito, produce il seguente risultato:
Value of i : 5
Value of i reference : 5
Value of d : 11.7
Value of d reference : 11.7
I riferimenti vengono solitamente utilizzati per elenchi di argomenti di funzioni e valori restituiti dalle funzioni. Di seguito sono riportati due argomenti importanti relativi ai riferimenti C ++ che dovrebbero essere chiari a un programmatore C ++:
Suor n | Concetto e descrizione |
---|---|
1 | Riferimenti come parametri C ++ supporta il passaggio di riferimenti come parametri di funzione in modo più sicuro rispetto ai parametri. |
2 | Riferimento come valore restituito Puoi restituire un riferimento da una funzione C ++ come qualsiasi altro tipo di dati. |