Конструктор не инициализирует некоторых членов класса
Неинициализированный участник происходит, когда конструктор класса имеет по крайней мере один путь к выполнению, на котором он не инициализирует некоторые элементы данных класса.
Дефект не появляется в следующих случаях:
Пустые конструкторы.
Неинициализированный участник не используется в коде.
У участников, которых не инициализирует конструктор, могут быть непреднамеренные значения, когда вы читаете их позже.
Инициализация всех участников в конструкторе облегчает использовать ваш класс. Если вы вызываете отдельный метод инициализировать ваших участников и затем считать их, можно избежать неинициализированных значений. Однако кто-то еще использующий ваш класс может считать член класса прежде, чем вызвать ваш метод инициализации. Поскольку конструктор называется, когда вы создаете объект класса, если вы инициализируете всех участников в конструкторе, у них не может быть неинициализированных значений позже.
Лучшая практика состоит в том, чтобы инициализировать всех участников в вашем конструкторе, предпочтительно в списке инициализаций.
Группа: Объектно-ориентированный |
Язык: C++ |
Значение по умолчанию: 'off' |
Синтаксис командной строки: NON_INIT_MEMBER |
Влияние: носитель |
ID CWE: 456, 457, 908 |