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, em que você converte explicitamente os tipos 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 tipos ocorre quando o tipo de uma variável não corresponde ao tipo que o compilador espera (por exemplo, ao atribuir um valor a um int, o compilador espera um número inteiro e realizará uma conversão de tipo se receber algo diferente).
- 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, às vezes, 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 são as operações +, -, *, /. Elas devem ser realizadas em variáveis do mesmo tipo de dado. Caso contrário, o C++ faz a promoção de tipo de forma implícita. Por exemplo, int / double -> double / double.
Outro exemplo onde ocorre a 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. Mas, graças à conversão implícita de tipo, é possível passar outros tipos de dados como condição. Aqui está uma imagem mostrando como eles 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