Mixed Mode Expressões em C ++
C ++ permite que você misturar tipos de variáveis em uma única expressão. Ou seja, você tem permissão para adicionar um número inteiro com um duplo precisão valor de ponto flutuante. No seguinte expressão, por exemplo, nValue1 é permitido ser um int:
// Na expressão a seguir o valor de nValue1 // é convertido em uma dupla antes de realizar o // assignmentint nValue1 = 1-nValue1 + 1.0-
Uma expressão em que os dois operandos não são do mesmo tipo é chamado um expressão de modo misto. expressões de modo misto gerar um valor cujo tipo é igual à mais capazes de os dois operandos. Nesse caso, nValue1 é convertido a um duplo antes do cálculo prossegue. Da mesma forma, uma expressão de um tipo pode ser atribuído a uma variável de um tipo diferente, como na seguinte afirmação:
// No seguinte atribuição, a parte // número inteiro de fVariable é armazenado em nVariabledouble dVariable = 1,0-int nVariable-nVariable = dVariable-
Você pode perder precisão ou intervalo se a variável no lado esquerdo da atribuição é menor. No exemplo anterior, C ++ trunca o valor de dVariable antes de armazená-lo em nVariable.
A conversão de um tipo de valor maior em um tipo de valor menor é chamado rebaixamento, Considerando que a conversão de valores em direcção oposta, como é conhecido promoção. Os programadores dizer que o valor de int variável nVariable1 é promovido a um duplo em expressões como as seguintes:
int nVariable1 = 1-double dVariable = nVariable1-
expressões de modo misto não são uma boa idéia. Evite forçar C ++ para fazer suas conversões para você.