C + + não tem operadores aritméticos , como adição e multiplicação definido para o tipo Bool . Estas operações ainda trabalhar devido a um processo conhecido como promoção integral. O mesmo recurso que converte automaticamente bytes para ints e ints para longs quando necessário também irá converter um Bool para um int . Devido a isso , os valores booleanos pode ser operado em aritmeticamente da mesma maneira como os tipos de integrantes . Instruções
1
Converter os valores booleanos para inteiros , usando 0 para falso e 1 para verdadeiro : "b = true * falso " se torna
< "b = 1 * 0 . " br> 2
Avaliar a expressão inteira , multiplicando os valores: "b = 1 * 0" torna-se " . b = 0"
3
Converta o resultado de volta para um valor booleano. Zero é falsa, e qualquer outra coisa que é verdade. Dependendo do seu compilador e configurações , essa conversão pode gerar um aviso. Converta como: "b = 0" torna-se " . B = false "