С++ для начинающих


Тип 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



Содержание раздела