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