Значение конструктора по умолчанию для типа bool

Какое значение делает конструктора по умолчанию возврата типа bool в C++?

Например, запись

int i = int();

гарантии, что переменная я буду всегда инициироваться с 0.

Я предполагаю, что такая стандартная программа инициализации возможна также:

bool b = bool();

Но к сожалению я не мог найти нигде, какое значение такое значение по умолчанию bool конструктор определяется для возврата. Переменная b всегда инициализируемый с ложью или верный.

18
задан Peter Mortensen 18 May 2016 в 23:10
поделиться

5 ответов

false.

Встречается в проекте C++14 N4296, раздел 8.5 (Инициализаторы), параграф 6, пункт 1 списка и ссылки в нем, и параграф 8, пункт 4 списка.

36
ответ дан 30 November 2019 в 06:39
поделиться

Инициализатор b также инициализируется нулем.

1
ответ дан 30 November 2019 в 06:39
поделиться

bool является интегральным типом, и инциализация значения должна сделать его нулевым.

6
ответ дан 30 November 2019 в 06:39
поделиться

Всегда ли переменная 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";
  }

}
3
ответ дан 30 November 2019 в 06:39
поделиться

bool ведет себя «как если бы он был объявлен»:

enum bool {false,true};

Это целочисленный тип, который может быть преобразован в int как значения 0 и 1 (соответственно), а его значение по умолчанию - false.

1
ответ дан 30 November 2019 в 06:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: