Conversión de Tipo Explícita
Desliza para mostrar el menú
Si está trabajando con variables de tipo int, en lugar de solo números en el código, necesita convertir el valor de una variable a double o float. Esto se puede lograr utilizando la siguiente sintaxis:
main.cpp
12345678910#include <iostream> int main() { int num1 = 9; int num2 = 4; std::cout << "No conversion: " << num1 / num2 << std::endl; std::cout << "With conversion: " << (double)num1 / num2 << std::endl; }
Existen varias formas de realizar una conversión de tipo explícita. Esta se denomina conversión de estilo C:
main.cpp
123456789101112#include <iostream> int main() { float num = 6.5; std::cout << (int)num << std::endl; // 6.5 to `int` is 6 std::cout << (bool)num << std::endl; // 6.5 to `bool` is true // Or std::cout << int(num) << std::endl; // 6.5 to `int` is 6 std::cout << bool(num) << std::endl; // 6.5 to `bool` is true }
Aunque este enfoque es conciso, no indica claramente la intención o la naturaleza de la conversión, lo que puede generar ambigüedad y un posible uso incorrecto.
Existen operadores de conversión más explícitos y seguros que ofrecen un mejor control sobre las conversiones de tipo.
La mayoría de las veces, solo se necesita una static_conversion. No se discutirán otros tipos de conversión en profundidad. Aquí está la sintaxis:
main.cpp
12345678#include <iostream> int main() { float num = 6.5; std::cout << static_cast<int>(num) << std::endl; // 6.5 to `int` is 6 std::cout << static_cast<bool>(num) << std::endl; // 6.5 to `bool` is true }
No cubriremos la diferencia entre todos ellos. En general, static_cast es preferible ya que es más restrictivo y puede prevenir comportamientos inesperados con tipos de datos complejos.
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla