Static_cast c ++

Static_cast c ++
In questo articolo, discuteremo del concetto di cast statico nel linguaggio di programmazione C ++. Per cominciare da questo concetto, dobbiamo sapere sul concetto di casting e il suo tipo. In parole semplici, il casting sta alterando il tipo di dati di una variabile in un'altra. Esistono due tipi di casting nel linguaggio di programmazione C ++ uno è un casting implicito e il secondo è esplicito casting.

Tipo Casting in C ++:

Nel linguaggio di programmazione C ++, ci sono due forme di conversione di casting o tipo che sono:

  1. Casting di tipo implicito.
  2. Casting di tipo esplicito.
  3. Casting di tipo implicito:

Il casting di tipo implicito è anche chiamato conversione di tipo automatizzato. Viene eseguito dal compilatore sulla compilation di runtime reale e non richiede alcun input o azione dall'utente. Questo tipo di casting si verifica quando due tipi di tipi di dati sono presenti in un'espressione. Per esempio:

int k = 8;
char alph = "u";
k = k + alph;

Questo è un perfetto esempio di conversione di tipo implicita o automatizzata. Il compilatore converte automaticamente il tipo di dati della variabile del carattere in un tipo di dati interi trasformandolo sul tempo di esecuzione al valore standard ASCII dell'alfabeto.

Casting di tipo esplicito:

La conversione esplicita di casting o tipo non è la conversione di tipo automatizzato; L'utente deve farlo da solo nel codice per convertire il tipo di dati di una variabile nel tipo di dati di un'altra variabile. Pertanto, la conversione esplicita di fusione o tipo di tipo viene solitamente eseguita quando viene utilizzato un tipo di dati di ordine più piccolo per contenere qualsiasi informazione; Tuttavia, deve essere trasformato in un tipo di dati più elevato per prevenire la perdita di dati e per archiviare più dati. La conversione per assegnazione viene eseguita in un'espressione nel codice e il modo di scrivere questa espressione è mostrato di seguito:

# (tipo di dati) espressione

Ora esamineremo i diversi tipi di conversioni che gli operatori del cast nel linguaggio di programmazione C ++ potrebbero fare. Gli operatori del cast, noti anche come operatori unari, costringono il tipo di dati di una variabile a passare da un tipo a un altro. Gli operatori del cast possono fare quattro diversi tipi di casting: cast statico, cast dinamico, cast reinterpretato e const cast.

Operatore di cast statico in C ++:

Il cast statico viene solitamente utilizzato quando dobbiamo convertire la variabile ENUM in variabili a galleggiante, intero o doppio tipo di dati nel linguaggio di programmazione C ++. Viene anche usato quando dobbiamo cambiare una variabile puntatore da una classe di base a un puntatore in una classe derivata.

Nel metodo del cast statico, non vi è alcun controllo durante il tempo di esecuzione di un programma per il casting di tipo rispetto alla fusione di tipo dinamico. La sintassi utilizzata per eseguire una conversione del cast statico nel linguaggio di programmazione C ++ è scritta di seguito:

# static_cast (oggetto);

Nell'espressione di cui sopra, scriviamo il tipo di dati in cui vogliamo convertire la nostra variabile tra le parentesi angolari e nella staffa rotonda, scriviamo il nome della variabile o il nome del puntatore, il tipo di dati deve essere convertito.

Convertire il tipo di dati della variabile float in un numero intero usando il metodo del cast statico in Ubuntu 20.04:

Nel programma C ++, a volte affrontiamo una situazione in cui dobbiamo cambiare esplicitamente un tipo di dati variabili, quindi dobbiamo usare il metodo del cast statico. Per implementare questo concetto in Ubuntu 20.04, apri il terminale, vai alla directory desktop scrivendo "CD desktop", quindi fai un .File CPP eseguendo il comando "tocco" con il nome file e l'estensione di .CPP. Quindi, individua e apri il tuo .File CPP sul desktop

Abbiamo aggiunto una libreria di iostream per eseguire operazioni di input e output. Dopodiché, abbiamo dichiarato lo spazio dei nomi. Quindi abbiamo iniziato la nostra funzione principale con il tipo di dati interi. All'interno della nostra funzione principale, abbiamo una variabile "F" con un tipo di dati float e assegniamo il valore di "3.5 "ad esso. Quindi abbiamo un'altra variabile, "b" con il tipo di dati interi. E ha superato un casting statico al valore della variabile "F". Quindi, abbiamo stampato la variabile "B" usando Cout.

Il codice sopra deve essere salvato; Fare clic sul pulsante Salva allocato nella barra di navigazione in alto del file. Quindi vai di nuovo al tuo terminale, compila il file e quindi eseguilo se non ci sono errori utilizzando rispettivamente i seguenti comandi "nome file g ++" con l'estensione del file che è ".CPP "e"./"Per l'esecuzione del nome del file leggibile che ha".fuori "come estensione.

Come puoi vedere nel risultato sopra, abbiamo convertito correttamente la variabile float nella variabile del tipo di dati interi. L'output mostra che solo il numero è una variabile intera prima che venga stampato il punto decimale. Possiamo anche scambiare il tipo di dati l'uno dall'altro, poiché la variabile float da convertire in intero sarà viceversa in cui convertiremo la variabile intera in una variabile tipo di dati float.

Convertire il tipo di dati di una variabile intera in galleggiante usando il metodo del cast statico:

Ora invertiremo la conversione che abbiamo eseguito nell'esempio sopra; Seguiremo i passaggi simili dall'esempio precedente come mostrato di seguito:

Nel codice sopra, abbiamo inizializzato una variabile intera "I" e assegnato il valore di "4". Quindi abbiamo un'altra variabile “A” con tipo di dati float e quindi convertito il suo tipo di dati in galleggiante, quindi abbiamo stampato nell'output utilizzando l'istruzione Cout. Dopo aver compilato ed eseguito il codice sopra, l'uscita verrà visualizzata come:

Abbiamo convertito la variabile intera in una variabile float poiché il compilatore non mostra errore. Tuttavia, ci sono ancora una certa perdita di dati in quanto l'intero è un tipo di dati di ordine inferiore, mentre il tipo di dati float è di ordine superiore.

Utilizzo del cast statico per dividere due numeri interi senza perdita di dati:

In questo esempio, divideremo due numeri interi convertendoli in una variabile float per salvare i dati che un numero intero non può trattenere. Per fare ciò, eseguiremo il seguente codice in cui inizializzamo due numeri interi denominati "I" e "K" con un valore di "41" e "2". Quindi abbiamo un'altra variabile con un tipo di dati float intitolato come "A" e convertire in una variabile float e dividerla per l'altra variabile intera. Quindi per ottenere l'uscita da visualizzare sullo schermo, abbiamo usato l'istruzione Cout.

Dopo aver compilato il codice nell'esempio sopra ed eseguirlo, otterremo il seguente output:

L'output di cui sopra spiega che abbiamo diviso la variabile intera. Tuttavia, prima di dividersi, abbiamo convertito la variabile intera per fluttuare il tipo di dati e abbiamo usato l'operatore di fusione statico nell'espressione per dividerlo anche. Il risultato mostra un numero con il punto decimale in quanto ora è una variabile float e può archiviare i numeri dopo il punto decimale.

Conclusione:

In questo articolo, abbiamo avuto modo di conoscere il meccanismo di fusione del tipo nel linguaggio di programmazione C ++. Molti tipi di casting sono stati anche esplorati in modo approfondito, concentrandosi sul perché utilizziamo tali metodi nella programmazione C ++. Abbiamo anche implementato il concetto di casting statico usando l'operatore di cast statico in un'espressione nel linguaggio di programmazione C ++ in Ubuntu 20.04 ambiente.