Come valutare booleano moltiplicazione in C ++

October 22

C ++ non ha gli operatori aritmetici come l'addizione e la moltiplicazione definito per il tipo Bool. Queste operazioni continuano a lavorare a causa di un processo noto come promozione integrale. La stessa funzione che converte automaticamente i byte di interi e interi per anela quando necessario sarà anche convertire un bool a int. Per questo motivo, i valori booleani possono funzionare aritmeticamente nello stesso modo come i tipi integrali.

istruzione

1 Convertire i valori booleani per interi, usando 0 per falso e 1 per vero: "b = true

false" diventa "b = 1 0"

2 Valutare l'espressione intera moltiplicando i valori: "b = 1 * 0" diventa "b = 0."

3 Convertire il risultato di nuovo in un valore booleano. Zero è falso, e qualsiasi altra cosa è vera. A seconda del compilatore e le impostazioni, questa conversione può generare un messaggio di avviso. Convertire come: "b = 0" diventa "b = false."

Consigli e avvertenze

  • Sebbene promozione integrale consente di eseguire aritmetica su Bools, è considerato cattiva pratica perché rende il codice difficile da capire. Moltiplicazione può essere sostituito dall'operatore e (&&), e inoltre può essere sostituito dal o (||) dell'operatore.