Cos'è il const riferimento in C ++

Cos'è il const riferimento in C ++
In C ++, i riferimenti sono come puntatori ma hanno differenze distinte. In primo luogo, i riferimenti non possono essere assegnati un valore nullo. In secondo luogo, le operazioni aritmetiche non possono essere eseguite sui riferimenti. In terzo luogo, una volta inizializzato un riferimento, non può essere fatto fare riferimento a un'altra variabile. Inoltre, i riferimenti non possono essere derenziati con l'operatore (*).

Quando si tratta di passare argomenti alle funzioni, ci sono tre modi per farlo:

  • Passare per valore
  • Passare per riferimento
  • Passa per const riferimento

In questo tutorial, discuteremo specificamente const riferimento, la sua dichiarazione e la sua attuazione in dettaglio.

Cos'è il const riferimento in c++?

Un riferimento const in C ++ è un riferimento con la parola chiave const. È semplicemente un riferimento alle costanti. Quando inizializziamo un const riferimento, il valore che i punti di riferimento const non possono essere modificati e rimarranno invariati in tutto il codice.

Dichiarare un riferimento come const è utile in situazioni in cui vogliamo impedire le modifiche all'oggetto a cui si fa riferimento, pur consentendo un accesso efficiente al valore dell'oggetto.

Come dichiarare const riferimento in c++?

In c++, const riferimento può essere dichiarato nei seguenti modi:

  • Come parametri della funzione
  • Come variabili membri della classe
  • Come variabile locale

1: dichiarare const riferimento come parametri della funzione

Quando dichiariamo una funzione per prendere un riferimento const come parametro, può leggere il valore dell'oggetto referenziato ma non può modificarlo. Questo è utile quando vogliamo passare un oggetto a una funzione senza consentire alla funzione di modificarlo.

Quanto segue è il codice per un tale caso:

#includere
void printValue (const int & value)
std :: cout << "The value is: " << value << std::endl;

int main ()
int val = 15;
printValue (val);
restituzione 0;

Questa è una funzione denominata printValue che prende un const riferimento a un numero intero come parametro e stampa il valore del numero intero alla console.

Produzione

2: dichiarare const riferimento come variabili membri della classe

Quando una variabile membro della classe viene dichiarata come un riferimento const, può essere inizializzata nell'elenco di inizializzazione del costruttore e quindi utilizzata in tutta la classe senza essere modificata. Ciò può aiutare a migliorare l'efficienza del codice evitando copie e modifiche non necessarie.

Quanto segue è il codice per un tale caso:

#includere
class myclass
pubblico:
Myclass (const int & value): m_value (value)
void printValue () const
std :: cout << "The value is: " << m_value << std::endl;

privato:
const int & m_value;
;
int main ()
int val = 15;
Myclass myobject (val);
myobject.printValue ();
restituzione 0;

Il codice sopra definisce una classe che ha un costruttore che prende un riferimento a un numero intero come parametro e inizializza una variabile membro privata M_Value con esso. La classe ha anche una funzione di funzione membro che stampa il valore di m_value sulla console. Nella funzione principale, un oggetto di tipo myclass viene creato con un valore intero 15 e la sua funzione printValue viene chiamata per stampare il valore alla console.

Produzione

3: dichiarare const riferimento come variabili locali

Un riferimento const può anche essere usato come variabile locale per fare riferimento a un oggetto esistente senza fare una copia.

Quanto segue è il codice per un tale caso:

#includere
int main ()
int val = 15;
const int & ref = val;
std :: cout << "Value: " << val << std::endl;
std :: cout << "Reference: " << ref << std::endl;
restituzione 0;

Nel codice sopra, dichiariamo un valore variabile intero e lo inizializziamo con il valore 15. Dichiariamo quindi un costante riferimento a un riferimento intero e lo inizializziamo con il valore del valore.

Produzione

Conclusione

Il riferimento const è una caratteristica utile in C ++, che agisce come un puntatore, ma con alcune differenze importanti. Non può modificare il valore della variabile a cui è connesso e può essere utilizzato in vari modi, come i parametri della funzione, le variabili dei membri della classe e le variabili locali. Per comprendere meglio i casi d'uso dei riferimenti const in C ++, questo articolo fornisce linee guida dettagliate con esempi di codifica per ciascuno di questi modi.