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