Um programador fez um código em C++ no qual há um cast de uma variável do tipo double para uma variável a do tipo int. Durante a execução do seu código, houve um problema, pois, ao imprimir a variável a, o programa passou a imprimir o valor - 2,147,483,648 , que não havia sido atribuído a ela.

Com os seus conhecimentos da função static_cast, descreva um possível motivo para esse problema.

Passo 1

Uma variável do tipo d o u b l e tem uma maior capacidade de armazenamento que uma variável do tipo i n t . Dessa forma, ao se utilizar o comando s t a t i c _ c a s t para fazer uma conversão do tipo d o b l e para o tipo i n t , existe a possibilidade do tipo d o u b l e , nesse momento, estar guardando um valor maior do que aquele suportado por uma variável i n t .

Nessa situação, o comando s t a t i c _ c a s t retorna o menor valor possível para a variável do tipo i n t .

Resposta

A variável do tipo d o u b l e está armazenando um valor maior que o máximo possível de ser suportado por uma variável do tipo i n t .

Exercícios Resolvidos de Redefinição e Conversão de Tipos

Ver Teoria