Vero e falso
Prima che venisse approvato lo standard, il C++ non forniva un tipo primitivo
(vedi tipi primitivi) per rappresentare valori booleani. Esattamente come in
C i valori di verita` venivano rappresentati tramite valori interi: 0 (zero)
indicava falso e un valore diverso da 0 indicava vero. Cio` implicava che ovunque
fosse richiesta una condizione era possibile mettere una qualsiasi espressione
che producesse un valore intero (quindi anche una somma, ad esempio). Non solo,
dato che l'applicazione di un operatore booleano o relazionale a due sottoespressioni
produceva 0 o 1 (a seconda del valore di verita` della formula), era possibile
mescolare operatori booleani, relazionali e aritmetici.
Il comitato per lo standard ha tuttavia approvato l'introduzione di un tipo
primitivo appositamente per rappresentare valori di verita`. Come conseguenza
di cio`, la` dove prima venivano utilizzati i valori interi per rappresentare
vero e falso, ora si dovrebbero utilizzare il tipo bool e i valori true
(vero) e false (falso), anche perche` i costrutti del linguaggio sono
stati adattati di conseguenza. Comunque sia per compatibilita` con il C ed il
codice C++ precedentemente prodotto e` ancora possibile utilizzare i valori
interi, il compilatore converte automaticamente ove necessario un valore intero
in uno booleano e viceversa (true viene convertito in 1):
10 < 5 // produce
false
10 > 5 // produce true
true || false // produce true
Pippo = (10 < 5) && true; //
possiamo miscelare le due
Clarabella = true && 5; // modalita`,
in questo caso
// si ottiene un booleano
|