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