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