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