Другие языки программирования и технологии
Зачем и для чего нужен тип данных bool в C++? Пожалуйста, объясните развёрнутым ответом. Заранее спасибо.
Везде прочитал и ничего не понял.
bool - Логический тип. В памяти занимает всего 1 байт. Может иметь всего два состояния - (true [истина], false [ложь]);
Логическую переменную удобно использовать в качестве атрибута объекта.
Например ты пишешь игру, у тебя есть множество персонажей, у каждого персонажа имеется множество атрибутов (size, speed, damage, x, y, hp, mp, live и т. д.)
И один из атрибутов - "live" - переменная логического типа (bool), знает жив ли персонаж.
Если жизни персонажа меншьше чем 1 то { live = false; (персонаж мертв) }
Тем самым игра сможет парсить состояние персонажа, без постоянных проверок типа if (hp<0){...}. Просто посмотрев на логическую переменную. И таких примеров много.
Все условия в ЯП, работают по логической истинне (true).
Стоит запомнить что:
Ложь это ноль, все остальное истинна.
false - константа равная числу 0.
true - эквивалентно числу 1.
Логическую переменную удобно использовать в качестве атрибута объекта.
Например ты пишешь игру, у тебя есть множество персонажей, у каждого персонажа имеется множество атрибутов (size, speed, damage, x, y, hp, mp, live и т. д.)
И один из атрибутов - "live" - переменная логического типа (bool), знает жив ли персонаж.
Если жизни персонажа меншьше чем 1 то { live = false; (персонаж мертв) }
Тем самым игра сможет парсить состояние персонажа, без постоянных проверок типа if (hp<0){...}. Просто посмотрев на логическую переменную. И таких примеров много.
Все условия в ЯП, работают по логической истинне (true).
Стоит запомнить что:
Ложь это ноль, все остальное истинна.
false - константа равная числу 0.
true - эквивалентно числу 1.
Егор Терешков
Очень понятно изложили, спасибо!
Для использования в программах булевой алгебры (алгебры логических операций).
для операций над логическими значениями. логические значения, в свою очередь, используются в операциях по условию.
Синтаксический щюгар. Простой C без плюсов прекрасно обходится без него. Если хочешь, то определи через #define
Сергей Шарыгин
> Синтаксический щюгар.
Определение знаешь или просто модное сочетание слов выучил?
> Если хочешь, то определи через #define
Покажи, как я могу перегрузить функцию по типу, определённому через define/typedef.
Определение знаешь или просто модное сочетание слов выучил?
> Если хочешь, то определи через #define
Покажи, как я могу перегрузить функцию по типу, определённому через define/typedef.
Bool - так это основной тип, выбор между 1 и 0.
1) Занимает мало места, всего 1 байт кажется, хотя можно уместить в 1 бит.
2) Все логические вычисления >, <, == , условия if, while и т. д. поддерживают bool переменные или функции возвращающие bool.
3) Хорошо подходит для условий в циклах.
Для чего, да для всего, bool много где нужен, я в основном использую для костылей или условий на выход из цикла. Еще его можно активно использовать для трассировки программ. Помогает в создании автоматических тестов.
1) Занимает мало места, всего 1 байт кажется, хотя можно уместить в 1 бит.
2) Все логические вычисления >, <, == , условия if, while и т. д. поддерживают bool переменные или функции возвращающие bool.
3) Хорошо подходит для условий в циклах.
Для чего, да для всего, bool много где нужен, я в основном использую для костылей или условий на выход из цикла. Еще его можно активно использовать для трассировки программ. Помогает в создании автоматических тестов.
Егор Терешков
Спасибо! А можно пример с кодом?
занимает мало места.
По сути bool не нужен - в чистом Си используется обычный int, по факту может он и имеет размер в 1 байт, но будет автоматически расширяться до 4/8 при передачи в функцию или возрата из нее...
Сергей Шарыгин
По сути не нужен ты. А специальный тип bool позволяет перегрузить оператор приведения к нему —- operator bool() — и использовать свои типы в контексте где ожидается bool.
Логический тип. true false.
Похожие вопросы
- зачем на тип данных bool (и эквивалентные ему в разные языках) выделяется целых 8 бит, если достаточно 1 бита?
- Сделайте пожалуйста программу на Паскале. Заранее спасибо!!!!
- Трудный вопрос. Оценки за все толковые ответы. Заранее спасибо (лучший ответ выберу обязательно)
- C++. Типы данных. Создание типа данных.
- Учу C++! Уже знаю: типы данных, циклы. условия, привидения и т. д учу 5дней. вот программа! Как норм за 5 дней?
- Напишите пожалуйста функцию обмена значений двух переменных на си (не c++) для любого типа данных
- (Borland C++) Неизвестно откуда берет значение. Помогите, кто знает. Заранее спасибо!
- Помогите с матрицей в C++,заранее спасибо.
- C# почему когда создаю тип данных byte - он его автоматически преобразовывает в тип int?
- C++ Про выбор типа данных. Int, char и т. д.