Какой самый краткий, но точный способ описать, что такое виртуальная функция в C ++?

Когда меня просят описать, что такое виртуальная функция, кажется, это один из самых распространенных вопросов на собеседованиях, оценивающих базовые знания C ++. Однако после нескольких лет программирования на C ++ у меня все еще возникает неприятное ощущение, что я действительно не понимаю, как лучше всего определить, что они из себя представляют.

Если я проконсультируюсь с Википедией, я увижу определение виртуальной функции:

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

Я думаю, я не понимаю, является ли описание виртуальных функций «указателем» чем-то фундаментальным для их определения или просто чем-то второстепенным для их реализации на C ++.

6
задан snok 20 March 2011 в 19:00
поделиться