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

3.7. Тип 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
Назад   Вперед
Содержание




Нет комментариев.



Оставить комментарий:
Ваше Имя:
Email:
Антибот: *  
Ваш комментарий: