Преимущества применения виртуальных функций в программировании:
- Реализация полиморфизма. 34 Виртуальные методы определяют общий интерфейс для всех производных классов, позволяя им самим определять реализацию данного интерфейса. 4
- Упрощение написания кода. 3 При обращении к методу через указатель будет вызываться именно тот вариант, который был объявлен как виртуальный в базовом классе и переопределён в производном. 4
Недостатки применения виртуальных функций в программировании:
- Сложности с поддержкой кода. 1 В высокой иерархии классов может быть трудно отследить, где на самом деле выполняется код, и определить, какой именно класс переопределяет поведение. 1
- Накладные расходы на память и время выполнения. 2 Объекты классов с виртуальными функциями требуют немного больше памяти и немного больше времени для выполнения. 2