а virtual void show(),и убрать virtual при наследовании? Значит,когда в производный класс A_D мы сначала поместим show из А,а затем show из D,то не должно ли произойти так,что show из А будут изменена на show из D?
Оберните код в теги: 3 символа ` до и после кода (в случае одиночной конструкции достаточно 1 ` с обеих сторон). Спасибо!
Виртуальные функции это немного про другое, они не спасут
нет, это разные случаи применения ключевого слова virtual. В одном случае оно используется для указания того, что наследование виртуальное - и в этом случае то, что унаследовано таким образом будет как бы выдернуто из общей иерархии и "склеится" со всеми такими же экземплярами, так что в итоге останется один. А виртуальность функции позволяет переопределить ее в наследниках и соответственно от имени базового класса вызвать переопределенную реализацию
Метод в производном останется virtual, указывай - не указывай.
Обсуждают сегодня