Когда меня просят описать, что такое виртуальная функция, кажется, это один из самых распространенных вопросов на собеседованиях, оценивающих базовые знания C ++. Однако после нескольких лет программирования на C ++ у меня все еще возникает неприятное ощущение, что я действительно не понимаю, как лучше всего определить, что они из себя представляют.
Если я проконсультируюсь с Википедией, я увижу определение виртуальной функции:
" В объектно-ориентированном программировании Я знаю, что люди говорят, что именно так достигается «полиморфизм» в C ++ (полиморфизм, насколько я понимаю, примерно представляет собой всю идею организации объектов в иерархии), но я не знаю более причудливого способа понять или объяснить механизм, чем рассматривать пример с указателями.
Я думаю, я не понимаю, является ли описание виртуальных функций «указателем» чем-то фундаментальным для их определения или просто чем-то второстепенным для их реализации на C ++.