Conversione del tipo C ++

In questo tutorial, impareremo le basi della conversione del tipo C ++ con l'aiuto di esempi.

Il C ++ ci permette di convertire i dati di un tipo in quello di un altro. Questo è noto come conversione del tipo.

Esistono due tipi di conversione del tipo in C ++.

  1. Conversione implicita
  2. Conversione esplicita (nota anche come Type Casting)

Conversione di tipo implicita

La conversione del tipo eseguita automaticamente dal compilatore è nota come conversione del tipo implicita. Questo tipo di conversione è noto anche come conversione automatica.

Esaminiamo due esempi di conversione di tipo implicita.

Esempio 1: conversione da int a double

 // Working of implicit type-conversion #include using namespace std; int main() ( // assigning an int value to num_int int num_int = 9; // declaring a double type variable double num_double; // implicit conversion // assigning int value to a double variable num_double = num_int; cout << "num_int = " << num_int << endl; cout << "num_double = " << num_double << endl; return 0; )

Produzione

 num_int = 9 num_double = 9

Nel programma abbiamo assegnato un intdato a una doublevariabile.

 num_double = num_int;

Qui, il intvalore viene convertito automaticamente doubledal compilatore prima di essere assegnato alla variabile num_double. Questo è un esempio di conversione di tipo implicita.

Esempio 2: conversione automatica da double a int

 //Working of Implicit type-conversion #include using namespace std; int main() ( int num_int; double num_double = 9.99; // implicit conversion // assigning a double value to an int variable num_int = num_double; cout << "num_int = " << num_int << endl; cout << "num_double = " << num_double << endl; return 0; )

Produzione

 num_int = 9 num_double = 9.99

Nel programma abbiamo assegnato un doubledato a una intvariabile.

 num_double = num_int;

Qui, il doublevalore viene convertito automaticamente intdal compilatore prima di essere assegnato alla variabile num_int. Questo è anche un esempio di conversione di tipo implicita.

Nota: poiché intnon può avere una parte decimale, le cifre dopo il punto decimale vengono troncate nell'esempio precedente.

Perdita di dati durante la conversione (restringimento della conversione)

Come abbiamo visto dall'esempio precedente, la conversione da un tipo di dati a un altro è soggetta alla perdita di dati. Ciò accade quando i dati di un tipo più grande vengono convertiti in dati di un tipo più piccolo.

Possibile perdita di dati durante la conversione del tipo

Conversione esplicita C ++

Quando l'utente modifica manualmente i dati da un tipo a un altro, si parla di conversione esplicita . Questo tipo di conversione è noto anche come casting del tipo .

Ci sono tre modi principali in cui possiamo usare la conversione esplicita in C ++. Sono:

  1. Cast di tipo C (noto anche come notazione cast )
  2. Notazione di funzione (nota anche come casting del tipo vecchio stile C ++ )
  3. Digitare operatori di conversione

Casting di tipo C.

Come suggerisce il nome, questo tipo di colata è favorita dal linguaggio di programmazione C . È anche noto come notazione cast .

La sintassi per questo stile è:

 (data_type)expression;

Per esempio,

 // initializing int variable int num_int = 26; // declaring double variable double num_double; // converting from int to double num_double = (double)num_int;

Casting in stile funzione

Possiamo anche usare la funzione come la notazione per trasmettere dati da un tipo a un altro.

La sintassi per questo stile è:

 data_type(expression);

Per esempio,

 // initializing int variable int num_int = 26; // declaring double variable double num_double; // converting from int to double num_double = double(num_int);

Esempio 3: tipo Casting

 #include using namespace std; int main() ( // initializing a double variable double num_double = 3.56; cout << "num_double = " << num_double << endl; // C-style conversion from double to int int num_int1 = (int)num_double; cout << "num_int1 = " << num_int1 << endl; // function-style conversion from double to int int num_int2 = int(num_double); cout << "num_int2 = " << num_int2 << endl; return 0; )

Produzione

 num_double = 3.56 num_int1 = 3 num_int2 = 3

Abbiamo utilizzato sia la conversione del tipo in stile C che il casting in stile funzione per la conversione del tipo e abbiamo visualizzato i risultati. Poiché svolgono la stessa operazione, entrambi ci danno lo stesso risultato.

Operatori di conversione dei tipi

Oltre a questi due tipi di casting, C ++ ha anche quattro operatori per la conversione del tipo. Sono noti come operatori di conversione del tipo . Sono:

  • static_cast
  • dynamic_cast
  • const_cast
  • reinterpret_cast

Impareremo a conoscere questi cast nei tutorial successivi.

Tutorial consigliati:

  • Stringa C ++ a int e viceversa
  • Stringa C ++ per float, double e viceversa

Articoli interessanti...