Логический тип bool не всегда был в С++. В начале своего пути разработчик С++ не заморачивался с выделением отдельного типа данных для логических значений, и для этого использовался тип int. При этом значение 0 рассматривалось как false, а всё остальное - как true. Потом тип bool всё-таки появился. Ну хотя бы для того, чтобы программистам на других языках было более приятно переходить на С++ ))) Но не только для этого, разумеется. Например, в таком коде: x = 1; z = 1; как вы поймёте, где логическая переменная, а где числовая? Да никак. Поэтому вы всегда должны это помнить. А зачем? Ведь намного понятнее, если это этот код будет таким: x = 1; z = true; Так что введение типа bool - это не простой каприз. Это делает код более читабельным и понятным, а также избавляет в некоторых случаях от необходимости писать комментарии. При этом язык С++ сохранил высокую совместимость типов bool и int. И здесь можно, например, сделать так: int x = 1; bool z = true; x = 1; z = true; x = x + z; Этот код