Ответ 1
В С++ нет различий между структурами и классами. Все они называются просто типами классов.
Члены типов классов не имеют значений по умолчанию в общем случае. Чтобы член класса мог получить детерминированное значение, он должен быть инициализирован, что может быть выполнено
- Конструктор по умолчанию самого элемента
- Список инициализаторов конструктора класса-оболочки
- Явно заданный инициализатор для объекта входящего класса (который включает инициализацию инициализации инициализации и инициализацию).
Кроме того, все объекты со статической продолжительностью хранения инициализируются нулями при запуске программы.
Помимо вышеуказанных случаев, члены класса снова не имеют значений по умолчанию и изначально будут содержать непредсказуемые значения мусора.