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