Conversão de tipos

Evite usar a sintaxe da linguagem C. A linguagem C++ trouxe novas sintaxes para conversão de tipos justamente porque as conversões de tipo eram causa frequente de erros de programação na linguagem C.

Se puder já escrever os valores das constantes com o tipo certo, melhor ainda. Exemplo: 1 é uma constante do tipo inteiro, 1.0 é uma constante do tipo double e 1.0f é uma constante do tipo float. O sufixo f informa ao compilador que a constante tem o tipo float. Outros sufixos existem. Em C++ você pode até criar seus próprios sufixos, por exemplo, para distinguir ângulos em graus de ângulos em radianos.

Ruim (sintaxe de C):

int b = 3; float a = (float) b * 10;

Note que um do problemas da sintaxe de C é lembrar da precedência. No exemplo acima, o que está sendo convertido? O valor de b antes multiplicação? O produto da multiplicação?

Bom (conversão genérica de C++):

int b = 3; float a = float(b) * 10.0f;

Bom (conversão específica de C++):

int b = 3; float a = static_cast<float>(b) * 10.0f;

A linguagem C++ tem comandos para conversão de tipo que não apenas dizem qual o tipo desejado, mas também dizem como converter para aquele tipo e podem também sinalizar problemas de conversão, afinal, nem sempre é possível converter de um tipo para outro.

Esta página é mantida por Bruno Schneider para a disciplina de IAlg