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