Conversão Implícita de Tipo
Deslize para mostrar o menu
A conversão de tipos ocorre o tempo todo. Ela pode ser uma conversão implícita, realizada automaticamente pelo compilador, ou uma conversão explícita, na qual os tipos são convertidos explicitamente no código.
main.cpp
1234567#include <iostream> int main() { int num = 6.5; // Implicit type conversion std::cout << num << std::endl; }
No exemplo, 6.5, um número de ponto flutuante, é convertido implicitamente para int (o que é feito removendo a parte decimal).
A conversão implícita de tipo ocorre quando o tipo de uma variável não corresponde ao tipo esperado pelo compilador (por exemplo, ao atribuir um valor a int, o compilador espera um número inteiro e realizará uma conversão de tipo se receber outro tipo de valor).
- Setas vermelhas indicam perda de dados. Por exemplo, ao converter
floatparalong(ouint), a parte decimal será perdida; - Setas verdes indicam ausência de perda de dados. Por exemplo, é seguro converter
intparalong, e o resultado permanece o mesmo; - Seta amarela na conversão de
long(ouint) parafloat(oulong) significa que, em alguns casos, pode ocorrer perda de dados devido à precisão insuficiente defloat(oulong).
main.cpp
1234567891011#include <iostream> #include <iomanip> int main() { int num_int = 123456789; float num_float = num_int; std::cout << std::setprecision(10); std::cout << num_float << std::endl; }
Outro exemplo de conversão implícita de tipo ocorre nas operações +, -, *, /. Essas operações devem ser realizadas em variáveis do mesmo tipo de dado. Caso contrário, o C++ realiza automaticamente a promoção de tipo. Por exemplo, int / double -> double / double.
Outro caso em que ocorre conversão implícita de tipo é em condições. Por exemplo, na instrução if.
Ela espera que a condição seja do tipo bool. Porém, graças à conversão implícita de tipo, é possível utilizar outros tipos de dados como condição. A seguir, uma imagem mostra como esses tipos são convertidos para bool:
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo