Тип bool
Объект типа bool
может принимать одно из двух значений: true и false. Например:
// инициализация строки string search_word = get_word(); // инициализация переменной found bool found = false; string next_word; while ( cin >> next_word ) if ( next_word == search_word ) found = true; // ... // сокращенная запись: if ( found == true ) if ( found ) cout << "ok, мы нашли слово\n"; |
else cout << "нет, наше слово не встретилось.\n";
Хотя bool
относится к одному из целых типов, он не может быть объявлен как signed, unsigned, short или long, поэтому приведенное определение ошибочно:
// ошибка |
short bool found = false;
Объекты типа bool
неявно преобразуются в тип int. Значение true
превращается в 1, а false – в 0. Например:
bool found = false; int occurrence_count = 0; while ( /* mumble */ ) { found = look_for( /* something */ ); // значение found преобразуется в 0 или 1 occurrence_count += found; |
}
Таким же образом значения целых типов и указателей могут быть преобразованы в значения типа bool. При этом 0 интерпретируется как false, а все остальное как true:
// возвращает количество вхождений extern int find( const string& ); bool found = false; if ( found = find( "rosebud" )) // правильно: found == true // возвращает указатель на элемент extern int* find( int value ); if ( found = find( 1024 )) |
// правильно: found == true