logo

Conversione di tipi in C++

Un cast di tipo è fondamentalmente una conversione da un tipo a un altro. Esistono due tipi di conversione di tipo:

    Conversione implicita del tipo Nota anche come 'conversione automatica del tipo'.
    • Eseguito autonomamente dal compilatore, senza alcun trigger esterno da parte dell'utente.
    • Generalmente avviene quando in un'espressione è presente più di un tipo di dato. In tale condizione avviene la conversione del tipo (promozione del tipo) per evitare la perdita di dati.
    • Tutti i tipi di dati delle variabili vengono aggiornati al tipo di dati della variabile con il tipo di dati più grande.
       bool ->char -> short int -> int -> unsigned int -> long -> unsigned -> long long -> float -> double -> long double>
    • È possibile che le conversioni implicite perdano informazioni, i segni possano andare perduti (quando Signed viene convertito implicitamente in Unsigned) e si può verificare un overflow (quando Long Long viene implicitamente convertito in float).

    Esempio di conversione implicita del tipo:








    strutture dati java

    // An example of implicit conversion> > #include> using> namespace> std;> > int> main()> {> >int> x = 10;>// integer x> >char> y =>'a'>;>// character c> > >// y implicitly converted to int. ASCII> >// value of 'a' is 97> >x = x + y;> > >// x is implicitly converted to float> >float> z = x + 1.0;> > >cout <<>'x = '> << x << endl> ><<>'y = '> << y << endl> ><<>'z = '> << z << endl;> > >return> 0;> }>



    >

    >

    Produzione:

     x = 107 y = a z = 108>
    Conversione esplicita del tipo: questo processo è anche chiamato cast del tipo ed è definito dall'utente. Qui l'utente può digitare il risultato per renderlo di un particolare tipo di dati.

    In C++, può essere fatto in due modi:

    • Conversione per assegnazione: Questo viene fatto definendo esplicitamente il tipo richiesto davanti all'espressione tra parentesi. Questo può anche essere considerato un lancio forzato.

      Sintassi:

      (type) expression>

      Dove tipo indica il tipo di dati in cui viene convertito il risultato finale.

      Esempio:


      affettare l'array Java



      // C++ program to demonstrate> // explicit type casting> > #include> using> namespace> std;> > int> main()> {> >double> x = 1.2;> > >// Explicit conversion from double to int> >int> sum = (>int>)x + 1;> > >cout <<>'Sum = '> << sum;> > >return> 0;> }>

      >

      >

      Produzione:

       Sum = 2>
    • Conversione utilizzando l'operatore Cast: Un operatore Cast è un operatore unario che forza la conversione di un tipo di dati in un altro tipo di dati.
      C++ supporta quattro tipi di casting:

      1. Cast statico
      2. Cast dinamico
      3. Cast costante
      4. Reinterpretare il cast
        1. Esempio:




          #include> using> namespace> std;> int> main()> {> >float> f = 3.5;> > >// using cast operator> >int> b =>static_cast><>int>>(F);> > >cout << b;> }>

          >

          Java trasforma il carattere in una stringa

          >

          Produzione:

           3>

Vantaggi della conversione del tipo:

  • Questo viene fatto per sfruttare alcune funzionalità delle gerarchie di tipi o delle rappresentazioni di tipi.
  • Aiuta a calcolare espressioni contenenti variabili di diversi tipi di dati.