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