bool
имеет только два значения, и они true
и false
.1
и 0
являются целочисленными литералами, поэтому они могут быть преобразованы в bool
.Необходимо учитывать, что преобразование работает в обоих направлениях, но вы не обязательно получите одно и то же целое число:
int a = 5;
bool b = a; // int -> bool conversion
int c = b; // bool -> int conversion
std::cout << a << " " c;
печатает:
5 1
Любое целое значение, отличное от 0
конвертируется в true
, но true
всегда конвертируется в 1
.
Учитывая это, все ваши примеры будут работать, как и ожидалось.Однако обратите внимание, что основная цель bool
заключается в том, что мы можем использовать true
и false
в нашем коде вместо того, чтобы указывать числа как 0
и 1
специального значения.Всегда лучше быть явным, поэтому, когда вы имеете в виду true
, лучше написать true
, а не 1
.