Все элементы данных класса, которые инициализируются конструктором, должны быть инициализированы с помощью инициализаторов члена
Все элементы данных класса, которые инициализируются конструктором, должны быть инициализированы с помощью инициализаторов члена.
Это неэффективно, чтобы инициализировать элементы данных класса путем присвоения копии переданных значений им в теле конструктора. Например, этот код неэффективен:
class foo{ private: int i; public: foo(int input){ i = input; //... } };
Инициализируйте элементы данных при помощи списка инициализаторов.
Инициализируйте элементы данных при помощи инициализаторов члена по умолчанию.
Чтобы увеличить КПД вашего кода и защитить ваш код от использования неинициализированного элемента данных, используйте предыдущие методы, чтобы инициализировать элементы данных класса.
Polyspace® отмечает определение конструктора класса, если конструктор инициализирует нестатические элементы данных класса в его теле путем копирования переданных значений в элементы данных. Polyspace не отмечает конструкторов с помощью неинициализированных статических элементов данных.
Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.
Группа: специальные функции членства |
Категория: необходимый, автоматизированный |