0Pricing
C++ Academy · Lezione

Perché usare riferimenti come alias delle variabili

Introduca i riferimenti come alias valutati in fase di compilazione che non possono essere riassegnati né nulli

Perché usare riferimenti come alias delle variabili è una lezione C++ Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento C++ Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso C++ Academy include 4 lezioni in totale.

Che cos'è un riferimento?

Un riferimento è un alias a tempo di compilazione per un'altra variabile. Non è un puntatore né una copia: è lo stesso oggetto con un nome diverso.

Sintassi dei riferimenti

Utilizzi & dopo il tipo. I riferimenti devono essere inizializzati alla dichiarazione e non possono essere riassociati.

int x = 10;
int& ref = x;     // ref is an alias for x
ref = 20;         // x is now 20

Confronto con i puntatori

Sia i riferimenti sia i puntatori forniscono un accesso indiretto, ma:

  • I riferimenti devono essere inizializzati; i puntatori possono essere null
  • I riferimenti non possono essere riassegnati a un altro oggetto
  • I riferimenti non utilizzano mai * o ->: si comportano come normali variabili

Nessuna riassociazione

Una volta associato, un riferimento si riferisce sempre allo stesso oggetto. Assegnargli un valore modifica il valore sottostante, non il riferimento in sé.

int a = 1, b = 2;
int& r = a;
r = b;       // a becomes 2, r still refers to a

I riferimenti hanno lo stesso indirizzo

Un riferimento si comporta come se fosse la variabile originale. Prenderne l'indirizzo restituisce l'indirizzo dell'oggetto referenziato.

int x = 42;
int& r = x;
std::cout << (&r == &x);   // 1 (true)

Riferimenti const

Un riferimento const è un alias di sola lettura. È utile per passare oggetti di grandi dimensioni senza copiarli.

void print(const std::string& s) {
    std::cout << s;  // can read, not modify
}

Associare riferimenti const a temporanei

Un riferimento const estende la durata di vita di un temporaneo fino alla durata di vita del riferimento stesso: è utile nelle espressioni.

const std::string& greeting = std::string("Hi");
std::cout << greeting;  // valid

Riferimenti come tipi restituiti

Le funzioni possono restituire riferimenti: è utile per concatenare operazioni o per fornire accesso diretto a un membro. Faccia attenzione a non restituire un riferimento a una variabile locale!

int& at(std::vector<int>& v, size_t i) {
    return v[i];
}

at(v, 0) = 99;   // modifies v[0]

Non restituisca mai un riferimento a una variabile locale

La variabile locale viene distrutta quando la funzione restituisce il risultato; il riferimento diventa dangling. Questo comportamento non è definito.

// BUG
int& bad() {
    int x = 10;
    return x;  // x dies here
}

Riferimenti nei cicli for basati su intervallo

Il ciclo for basato su intervallo utilizza implicitamente i riferimenti. auto& ottiene un riferimento; auto ottiene una copia.

Riferimenti nei binding strutturati

I binding strutturati di C++17 possono essere associati per valore, per riferimento o per riferimento const.

std::pair<int, int> p = {1, 2};
auto [a, b] = p;            // copies
auto& [x, y] = p;           // references — modifying x changes p.first

Verifica rapida

Perché un riferimento non può essere riassociato in seguito a un'altra variabile?

Riepilogo

Un riferimento è un alias a tempo di compilazione che deve essere inizializzato e non può essere riassociato. Si comporta come una normale variabile, non è mai null e non può essere riassegnato. Utilizzi riferimenti const per viste di sola lettura.

Domande Frequenti

La lezione «Perché usare riferimenti come alias delle variabili» è gratuita?

Sì — il testo completo di «Perché usare riferimenti come alias delle variabili» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso C++ Academy, passa a CoddyKit PRO. Il corso C++ Academy include 4 lezioni in totale.

Cosa imparerò in «Perché usare riferimenti come alias delle variabili»?

Introduca i riferimenti come alias valutati in fase di compilazione che non possono essere riassegnati né nulli Eserciti C++ Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare C++ Academy?

Non è richiesta alcuna esperienza precedente. C++ Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Perché usare riferimenti come alias delle variabili»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione C++ Academy?

Sì. Ogni lezione C++ Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Perché usare riferimenti come alias delle variabili
  2. Passaggio per valore e per riferimento a confronto
  3. Riferimenti const e quando usarli
  4. Durata dei riferimenti e riferimenti dangling
← Torna a C++ Academy