Производные классы, которые не нуждаются в дальнейшей явной инициализации и требуют все конструкторы из базового класса, должны использовать наследующие конструкторы
Производные классы, которые не нуждаются в дальнейшей явной инициализации и требуют все конструкторы из базового класса, должны использовать наследующие конструкторы.
Если производный класс использует все конструкторы базового класса и не инициализирует явно какие-либо дополнительные элементы данных, отсутствующие в базовом классе, повторная реализация этих конструкторов в производном классе добавляет ненужные строки кода. Повторная реализация может не совпадать с конструкторами в базовом классе из-за ошибки пользователя и может привести к ошибкам в коде. Кроме того, при каждом изменении конструкторов базовых классов необходимо также обновлять конструкторы производных классов. Это увеличивает накладные расходы на ведение кода.
В таких ситуациях использование наследующих конструкторов в производном классе решает эти проблемы.
Polyspace помечает класс за нарушение этого правила, если класс удовлетворяет всем этим условиям:
Класс является производным от одного базового класса.
Класс использует все конструкторы базового класса и повторно внедряет их в определение класса.
Если вы ожидаете нарушения правила, но не видите его, обратитесь к разделу Нарушения стандартов кодирования не отображаются.
| Группа: Специальные функции-члены |
| Категория: Обязательно, Автоматизировано |