Conversão Explícita de Tipo
Deslize para mostrar o menu
Ao lidar com variáveis do tipo int, em vez de apenas números no código, é necessário converter o valor de uma variável para double ou float. Isso pode ser realizado utilizando a seguinte sintaxe:
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; }
Existem várias maneiras de realizar a conversão de tipo explicitamente. Esta é chamada de conversão no 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 }
Embora essa abordagem seja concisa, ela não indica claramente a intenção ou a natureza da conversão, o que pode levar a ambiguidades e possíveis usos indevidos.
Existem operadores de conversão mais explícitos e seguros para fornecer melhor controle sobre as conversões de tipo.
Na maioria das vezes, apenas uma static_conversion é necessária. Não discutiremos outros casts em detalhes. Veja a sintaxe:
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 }
Não abordaremos a diferença entre todos eles. Em geral, static_cast é preferível, pois é mais restritivo e pode evitar comportamentos inesperados com tipos de dados complexos.
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo