C ++ const_cast

C ++ const_cast
Per sostanzialmente ogni intento, come processi con tipi di dati, interazioni con puntatori e processi all'interno delle classi, C ++ è un linguaggio efficiente e potente di programmazione che può essere utilizzato per manipolare informazioni e archiviazione. In C ++, i processi CONST_CHAT possono essere utilizzati con tipi di dati di struttura e classi.

L'operatore const_cast in C ++ verrà utilizzato in questo articolo. Rivediamo il casting in C ++ prima di procedere.

Una metodologia per la conversione di un tipo di dati o l'altro è il casting. L'operatore cast è l'operatore impiegato per questa funzione. Questo è un operatore che obbliga la conversione tra due vari tipi di dati. Un operatore di cast è un operatore nel linguaggio di programmazione C ++ che richiede la trasformazione di un tipo di dati in un altro.

Il const_cast è uno degli operatori del cast, che trasforma tra due tipi di dati con valori specifici. Un valore non inizializzato può essere modificato in un valore inizializzato utilizzando il metodo di tipo const_cast per associare. Const_cast è problematico perché rende il linguaggio di programmazione C ++ incapace di impedire agli utenti di cercare di cambiare un oggetto costante. Di conseguenza, questa azione è indefinita.

Esempio n. 1

Un modificatore costante o dinamico può essere aggiunto o eliminato da un tipo utilizzando l'operatore const_cast. L'operatore const_cast verrà utilizzato nei seguenti esempi:

#includere
Utilizzo dello spazio dei nomi std;
void f (int* q)
cout << *q << endl;

int main (void)
const int i = 30;
const int* j = & i;
int* e = const_cast(J);
f (e);
int i1 = 60;
const int* j1 = &i1;
int* e1 = const_cast(J1);
*e1 = 90;
restituzione 0;



Qui, incorporeremo la biblioteca . È stato utilizzato il seguente spazio dei nomi standard. Chiamiamo la funzione f (). Passiamo il puntatore (* Q) come parametro di questa funzione. La dichiarazione "cout" verrà utilizzata per mostrare il risultato. Qui, abbiamo usato il metodo principale (). Creeremo una variabile "i" e imposteremo il suo valore come 30. L'INTEGER sarà specificato come tipo di dati e questa variabile sarà costante. Ora abbiamo creato un nuovo puntatore (*j) e qui, forniamo il valore della variabile costante "I" a questo puntatore.

Il puntatore del tipo di dati interi (*e) sarà costruito e diamo il suo valore come const_cast. Quindi, cambiamo il valore della variabile "i". Qui, non fungerà da variabile costante. Usando il valore della variabile "i", daremo il valore al puntatore costante (* J1). Quindi abbiamo applicato const_cast. Impostiamo il valore del puntatore "E1". La dichiarazione di ritorno viene utilizzata.

Esempio n. 2

In questo caso, la variabile ha un valore costante e il puntatore costante punta a quella variabile. Tuttavia, possiamo modificare il valore della variabile costruendo un nuovo puntatore con un tipo di dati simile e utilizzando const_cast.

#includere
Utilizzo dello spazio dei nomi std;
int main ()
const int t = 40;
const int* u = & t;
cout<<"The original value:"<<*u<<"\n";
int* x = const_cast(u);
*x = 70;
cout<<"The updated value:"<<*u;
restituzione 0;



Prima di tutto, il pacchetto verrà importato. Lo spazio dei nomi standard verrà utilizzato nella riga successiva. Iniziamo il codice nel corpo della funzione principale (). Una variabile denominata "T" è inizializzata; Il suo tipo di dati è un numero intero. Gli diamo il valore “40."La parola chiave" const "è prima del suo tipo di dati" int ", quindi questo valore sarebbe costante. Il valore della variabile costante "t" sarà specificato sul puntatore (u) quando costruiamo questo puntatore.

Quindi, utilizziamo l'istruzione "cout" per visualizzare la frase "il valore originale" sullo schermo. Per utilizzare const_cast, verrà costruito un nuovo puntatore. In questo caso, il puntatore "X" è stato generato con un tipo di dati interi simile. Pertanto, possiamo modificare il valore del puntatore costante "U" se diamo a questo puntatore "U". Questo si riferisce alla variabile costante richiesta "t", all'interno di const_cast, e alloca un numero casuale al puntatore x. Utilizzando const_cast in questo metodo, abbiamo modificato il valore costante della variabile da 40 a 70. L'istruzione "Cout" verrà quindi utilizzata per stampare il valore modificato sullo schermo. Per terminare il codice, il comando "return" dovrebbe essere inserito.

Esempio n. 3

Modificare un valore esplicitamente specificato come costante è una funzionalità non definita. Valuta il seguente codice:

#includere
Utilizzo dello spazio dei nomi std;
int main ()
const int t = 40;
const int* u = & t;
cout<<"The original value:"<<*u<<"\n";
int* x = const_cast(u);
*x = 70;
cout<<"The updated value:"<<*u;
restituzione 0;



All'inizio del codice, includeremo il file di intestazione . Questa libreria sarà responsabile delle metodologie di input e output. Quindi abbiamo utilizzato lo spazio dei nomi standard. Ora dichiareremo una funzione. All'interno di questa funzione, creeremo un puntatore (P). Quindi assegniamo il valore al puntatore (P). Abbiamo impiegato la dichiarazione di ritorno, che restituisce il valore del puntatore. Inizializziamo una variabile "V" e il tipo di dati di questa variabile è un numero intero. Gli assegniamo il valore "20". Questo valore sarà costante in quanto abbiamo utilizzato la parola chiave "const" prima di inizializzare questa variabile.

Qui, costruiamo un nuovo puntatore (P_1). E insieme a questo, abbiamo usato const_cast. La funzione "F (P 1)" mira a modificare il valore della variabile costante "V" utilizzando il cast const. Definiamo una funzione e passiamo il valore del nuovo puntatore come argomento. Successivamente, il comando "cout" viene utilizzato per visualizzare l'output. Alla fine, verrà utilizzata una dichiarazione di ritorno.

Conclusione

In questo articolo, abbiamo discusso di const_cast in c++. I dati possono essere convertiti da un tipo all'altro da una procedura chiamata Casting. Abbiamo eseguito alcuni esempi che dimostrano l'uso principale di const_cast. La parola const_cast trasformerà un puntatore in un'entità costante in un riferimento a una variabile non costante. L'operatore const_cast non verrà applicato per modificare direttamente uno stato variabile. Un attributo che non è stato definito come "const" potrebbe essere efficacemente modificato se la sua costante è abbandonata.