Метод производного класса скрывает virtual метод базового класса вместо переопределения его
Этот дефект возникает, когда метод производного класса имеет то же имя и количество параметров, что и virtual метод базового класса, но:
Списки параметров различаются по крайней мере одним типом параметров.
Списки параметров отличаются наличием или отсутствием таких квалификаторов, как const.
Метод производного класса скрывает virtual метод базового класса вместо переопределения.
Можно непреднамеренно скрыть метод базового класса вместо переопределения его методом производного класса.
Если метод базового класса скрыт, и вы используете объект производного класса для вызова метода с параметрами базового класса, то вместо этого вызывается метод производного класса. Для параметров, типы которых не совпадают с аргументами, которые вы передаете, приведение происходит, если это возможно. В противном случае происходит отказ компиляции.
Чтобы переопределить виртуальный метод базового класса с помощью метода производного класса, объявите методы с помощью идентичных списков параметров. Например, измените тип параметра или добавьте const квалификатор при необходимости.
В C++ 11 и более поздних версиях можно объявить предполагаемые методы переопределения в производном классе с помощью спецификатора override. Когда вы объявляете производные методы класса с помощью спецификатора overrideкомпиляция прекращает работать, если списки параметров метода базового класса и метода производного класса отличаются. Методы производного класса не могут непреднамеренно скрыть методы базового класса, и обеспечивается переопределение виртуальных методов базового класса.
В противном случае добавьте линии с помощью к производному объявлению класса. Затем можно получить доступ к методу базового класса с помощью объекта производного класса.Base_class_name:: method_name
| Группа: Объектно-ориентированная |
| Язык: C++ |
| По умолчанию: On для рукописного кода, off для сгенерированного кода |
Синтаксис командной строки: VIRTUAL_FUNC_HIDING |
| Влияние: Средний |