Condividi tramite


Riferimenti (C++)

È possibile dichiarare i riferimenti tramite la seguente sintassi:

[storage-class-specifiers] [cv-qualifiers] type-specifiers 
[ms-modifier] declarator [= expression];

È possibile utilizzare qualsiasi dichiaratore valido che specifica un riferimento. A meno che il riferimento non sia un riferimento al tipo di funzione o di matrice, si applica la sintassi seguente semplificata:

[storage-class-specifiers] [cv-qualifiers] type-specifiers & 
[cv-qualifiers] identifier [= expression];

I riferimenti vengono dichiarati tramite la seguente sequenza:

1. Gli identificatori di dichiarazione:

  • Identificatore della classe di archiviazione facoltativo.

  • I qualificatori facoltativi const e/o volatile.

  • Il tipo di identificatore: il nome di un tipo.

  • 2. Dichiaratore:

  • Un modificatore facoltativo specifico di Microsoft. Per ulteriori informazioni, vedere il sito Web Microsoft Modificatori specifici di Microsoft.

  • Operatore &.

  • I qualificatori facoltativi const e/o volatile.

  • Identificatore.

3. Inizializzatore facoltativo.

I form di dichiaratori più complessi per i puntatori a matrici e a funzioni si applicano anche ai riferimenti alle matrici e alle funzioni; vedere gli argomenti relativi ai puntatori e ai dichiaratori.

Più dichiaratori e inizializzatori possono essere visualizzati in un elenco separato da virgola che segue un singolo identificatore di dichiarazione. Ad esempio:

int &i; 
int &i, &j; 

I riferimenti, i puntatori e gli oggetti possono essere dichiarati insieme:

int &ref, *ptr, k; 

Un riferimento contiene l'indirizzo di un oggetto, ma dal punto di vista sintattico si comporta come un oggetto.

Nel seguente programma osservare come il nome dell'oggetto, Today e il riferimento all'oggetto, TodayRef, possano essere utilizzati 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:

Vedere anche

Riferimenti

Inizializzazione di riferimenti