Какое значение делает конструктора по умолчанию возврата типа bool в C++?
Например, запись
int i = int();
гарантии, что переменная я буду всегда инициироваться с 0.
Я предполагаю, что такая стандартная программа инициализации возможна также:
bool b = bool();
Но к сожалению я не мог найти нигде, какое значение такое значение по умолчанию bool конструктор определяется для возврата. Переменная b всегда инициализируемый с ложью или верный.
false
.
Встречается в проекте C++14 N4296, раздел 8.5 (Инициализаторы), параграф 6, пункт 1 списка и ссылки в нем, и параграф 8, пункт 4 списка.
bool является интегральным типом, и инциализация значения должна сделать его нулевым.
Всегда ли переменная b инициализируется значением false или true?
false
Преобразование true
в целочисленный
тип даст 1
, и преобразование false
даст 0
( 4,5 / 4
и 4,7 / 4
)
Очень простой тестовый код
#include<iostream>
int main()
{
bool b=bool();
if(!b)
{
std::cout<<"b: false";
}
}
bool ведет себя «как если бы он был объявлен»:
enum bool {false,true};
Это целочисленный тип, который может быть преобразован в int как значения 0 и 1 (соответственно), а его значение по умолчанию - false.