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