Conversión de tipos en C++

Una conversión de tipo es básicamente una conversión de un tipo a otro. Hay dos tipos de conversión de tipos:

  1. Conversión de tipo implícita También conocida como ‘conversión de tipo automática’.
    • Realizado por el compilador por su cuenta, sin ningún disparador externo por parte del usuario.
    • Generalmente tiene lugar cuando en una expresión está presente más de un tipo de datos. En tal condición, la conversión de tipo (promoción de tipo) tiene lugar para evitar la pérdida de datos.
    • Todos los tipos de datos de las variables se actualizan al tipo de datos de la variable con el tipo de datos más grande.
      bool -> char -> short int -> int -> 
      
      unsigned int -> long -> unsigned -> 
      
      long long -> float -> double -> long double
      
    • Es posible que las conversiones implícitas pierdan información, los signos se pueden perder (cuando firmado se convierte implícitamente en sin firmar) y se puede producir un desbordamiento (cuando long long se convierte implícitamente en float).

    Ejemplo de conversión implícita de tipos:

    // An example of implicit conversion
      
    #include <iostream>
    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;
    }
    Producción:

    x = 107
    y = a
    z = 108
    
  2. Conversión de tipos explícita : este proceso también se denomina conversión de tipos y está definido por el usuario. Aquí el usuario puede encasillar el resultado para convertirlo en un tipo de datos particular.

    En C++, se puede hacer de dos maneras:

    • Conversión por asignación: esto se hace definiendo explícitamente el tipo requerido delante de la expresión entre paréntesis. Esto también se puede considerar como lanzamiento contundente.

      Sintaxis:

      (type) expression

      donde tipo indica el tipo de datos al que se convierte el resultado final.

      Ejemplo:

      // C++ program to demonstrate
      // explicit type casting
        
      #include <iostream>
      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;
      }
      Producción:

      Sum = 2
      
    • Conversión usando el operador Cast: Un operador Cast es un operador unario que obliga a que un tipo de datos se convierta en otro tipo de datos.
      C++ admite cuatro tipos de conversión:
      1. Reparto estático
      2. Reparto dinámico
      3. Reparto constante
      4. Reinterpretar Reparto
        1. Ejemplo:

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

          3
          

Ventajas de la conversión de tipos:

  • Esto se hace para aprovechar ciertas características de las jerarquías de tipos o las representaciones de tipos.
  • Ayuda a calcular expresiones que contienen variables de diferentes tipos de datos.

Publicación traducida automáticamente

Artículo escrito por AtishChandra1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *