Рассмотрим сценарий, в котором есть два класса, т.е. базовый и производный. Если базовый класс хочет вызвать функцию производного класса, он может сделать это либо создав виртуальную функцию и определив эту VF в производном классе, либо используя обратные вызовы . Я хочу знать, что из двух следует предпочесть? Выбор из двух зависит от того, какие ситуации / условия?
РЕДАКТИРОВАТЬ: Уточнение вопроса:
Ситуация, о которой я говорил, заключается в том, что существует базовый класс, который получает сообщения. Эти разные сообщения должны обрабатываться производным классом по-разному, поэтому один из способов - создать виртуальную функцию и позволить производному классу реализовать ее, обрабатывая каждое сообщение в различных случаях переключения.
Другой способ - реализовать обратные вызовы через указатели функций (указывающие на функции производного класса) внутри шаблонов (шаблоны необходимы для обработки объекта производного класса и имен функций). Шаблоны и указатели на функции будут находиться в базовом классе.