Приветствия и hth. - Alf сделал комментарий в ответе , что инициализация значения, возможно, является новой функцией С++ 03 по сравнению с С++ 98. Интересно, что он имел в виду.
Является инициализация значения частью С++ 98? Является ли это в концепции, но не по имени? Почему он был добавлен в стандарт С++ 03?
У меня есть копия стандарта '03, но не стандарт '98. Здесь определение инициализации по умолчанию и инициализации значения.
Для инициализации объекта типа T по умолчанию:
- если T - тип класса не-POD (раздел 9), конструктор по умолчанию для T называется (и инициализация плохо сформирована, если T не имеет доступный конструктор по умолчанию);
- если T - тип массива, каждый элемент инициализируется по умолчанию;
- в противном случае объект инициализируется нулем.
Для инициализации объекта типа типа T означает:
- если T - тип класса (раздел 9) с объявленным пользователем конструктором (12.1), то по умолчанию конструктор для T (и инициализация плохо сформирована, если T не имеет доступного конструктора по умолчанию);
- если T - неединичный класс типа без конструктора, объявленного пользователем, то все нестатические данные член и компонент базового класса T инициализируются значением;
- если T тип массива, то каждый элемент инициализируется значением;
- в противном случае, объект инициализируется нулем
Моя догадка заключается в том, что '98 имел инициализацию по умолчанию, но не инициализацию значения, и что существует некоторое ключевое различие между ними. Честно говоря, у меня проблемы с разбором стандартного здесь, и я не понимаю разницы между определениями.