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