Riferimenti (C++)
I riferimenti possono essere dichiarati utilizzando la sintassi seguente:
[storage-class-specifiers] [cv-qualifiers] type-specifiers
[ms-modifier] declarator [= expression];
Qualsiasi dichiaratore valido che specifica un riferimento può essere utilizzato.A meno che non si tratti di un riferimento alla funzione o al tipo di matrice, la sintassi seguente semplificata si applica:
[storage-class-specifiers] [cv-qualifiers] type-specifiers &
[cv-qualifiers] identifier [= expression];
I riferimenti vengono dichiarati utilizzando la seguente sequenza:
1.Gli identificatori di dichiarazione:
Un identificatore facoltativo della classe di archiviazione.
facoltativo const e/o volatile qualificatori.
L'identificatore del tipo: il nome di un tipo.
2.il dichiaratore:
un modificatore specifico facoltativo di Microsoft.Per ulteriori informazioni, vedere Modificatori specifici microsoft.
& Operatore.
facoltativo const e/o volatile qualifers.
Identificatore.
3.un inizializzatore facoltativo.
I form più complessi del dichiaratore per i puntatori alle matrici e le funzioni si applicano anche ai riferimenti alle matrici e le funzioni, vedere puntatori e dichiaratori.
I dichiaratori più gli inizializzatori e possono essere visualizzate in un elenco delimitato da virgole che segue un singolo identificatore di dichiarazione.Di seguito è riportato un esempio:
int &i;
int &i, &j;
I riferimenti, puntatori e gli oggetti possono essere dichiarati raccolta:
int &ref, *ptr, k;
un riferimento utilizza l'indirizzo di un oggetto, ma si comporta sintatticamente come un oggetto.
Nel seguente programma, si noti che il nome dell'oggetto, Todaye il riferimento all'oggetto, TodayRef, può essere utilizzato in modo identico nei programmi:
Esempio
// references.cpp
#include <stdio.h>
struct S {
short i;
};
int main() {
S s; // Declare the object.
S& SRef = s; // Declare the reference.
s.i = 3;
printf_s("%d\n", s.i);
printf_s("%d\n", SRef.i);
SRef.i = 4;
printf_s("%d\n", s.i);
printf_s("%d\n", SRef.i);
}
Commento
Argomenti contenuti in questa sezione: