Андрей
Высший разум
(432658)
1 месяц назад
Виртуальные функции - способ реализации полиморфизма. Это не "преимущество", а "назначение", упрощающее написание кода. Но упрощающее не так уж и сильно, т.к. аналогичный функционал обеспечивается указателями на функции.
Сама по себе виртуальная функция ничем не отличается от обычной. Но в компилируемых языках отличается способ её вызова: вместо того, чтобы сразу переходить по известному адресу, сначала адрес функции читается из таблицы, а потом производится переход по этому адресу. Так что вызов виртуальной функции требует на несколько тактов процессора больше.