Можно ли так инициировать компоненты класса?

struct TList
{
  byte n = 0;
  int M[256];
  void Reset() { n = 0; };
  void Push(int x) { M[n] = x; n++;  }
}

Имеется ввиду byte n = 0. Всегда ли будет n=0 при объявлении переменной типа TList?
Знаю, что можно написать конструктор TList() {n=0;} или TList() : n(0) {}. Просто интересно, допустим ли такой краткий вариант.
  • Вопрос задан
  • 230 просмотров
Решения вопроса 2
@MarkusD Куратор тега C++
все время мелю чепуху :)
en.cppreference.com/w/cpp/language/class
Параграф "Member specification".
Если ты используешь стандарт c++11 и выше, то инициализация полей непреложна.

Единственным исключением будет список инициализации полей в пользовательском конструкторе.
en.cppreference.com/w/cpp/language/initializer_list
Ответ написан
Комментировать
Да. inline инициализация, по сути, дополняет список инициализации всех конструкторов. В том числе, default конструктора.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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