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