Как инициализировать структуру значением 0 в C++C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как инициализировать структуру значением 0 в C++

Сообщение Anonymous »

Вот соответствующий ответ C, который не работает (как нулевой инициализатор для структуры) в C++: Инициализация структуры значением 0. Одно из представленных решений таково:

Код: Выделить всё

myStruct _m1 = {0};
Это отлично работает в C, но не работает в C++. :( :

ошибка: невозможно инициализировать подобъект-член типа 'myScope::MyStruct' с rvalue типа 'int'`.

Как инициализировать структуру нулями в C++?
Связано:
  • Инициализация
    структуры значением 0 в C: Инициализация структуры значением 0
  • Обновление: (смежный, но НЕ повторяющийся вопрос, который также оказывается очень полезным) Инициализация с пустыми фигурными скобками
См. также:
  • [смежно связано, но предназначено для массивов в стиле C, not structs] Как инициализировать все члены массива одним и тем же значением?
Людям, голосующим за закрытие этого вопроса:
Мой вопрос не является дубликатом другого вопроса (инициализация с пустыми фигурными скобками), поскольку этот другой вопрос не задается о различных способах инициализации структуры в C++ и о том, почему способ C не работает, скорее, они спрашивают почему ключевое слово C++ явный нарушает один из методов инициализации. Два разных вопроса. Не дублируются.
Последующий вопрос, который я задал:
  • Почему при инициализации структуры C++ значением = {0} всем ее членам не присваивается значение 0?


Подробнее здесь: https://stackoverflow.com/questions/612 ... -to-0-in-c
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»