Una conversión de tipo es básicamente una conversión de un tipo a otro. Hay dos tipos de conversión de tipos:
- 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
- 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:- Reparto estático
- Reparto dinámico
- Reparto constante
- Reinterpretar Reparto
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
- 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.
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