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
Practice
Projects
Quizzes & Challenges
Questionários
Challenges
/
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, na qual os tipos são convertidos explicitamente 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 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 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, em alguns casos, 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 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:

question mark

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

Select the correct answer

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