Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Conversão Implícita de Tipo | Outros Tipos de Dados e Conceitos
Tipos de Dados em C++

bookConversã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

main.cpp

copy
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 float para long (ou int), a parte decimal será perdida;
  • Setas verdes indicam ausência de perda de dados. Por exemplo, é seguro converter int para long, e o resultado permanece o mesmo;
  • Seta amarela na conversão de long (ou int) para float (ou long) significa que, às vezes, pode ocorrer perda de dados devido à precisão insuficiente de float (ou long).
main.cpp

main.cpp

copy
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:

question mark

Qual das seguintes atribuições pode resultar em perda de dados devido à conversão implícita de tipo em C++?

Selecione a resposta correta

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 6

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Seção 4. Capítulo 6
some-alt