Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Каковы преимущества виртуальных функций по сравнению с обычными методами?

ФермаКактусов Высший разум (184440), закрыт 3 недели назад
Лучший ответ
Андрей Высший разум (430635) 3 недели назад
Виртуальные функции - способ реализации полиморфизма. Это не "преимущество", а "назначение", упрощающее написание кода. Но упрощающее не так уж и сильно, т.к. аналогичный функционал обеспечивается указателями на функции.

Сама по себе виртуальная функция ничем не отличается от обычной. Но в компилируемых языках отличается способ её вызова: вместо того, чтобы сразу переходить по известному адресу, сначала адрес функции читается из таблицы, а потом производится переход по этому адресу. Так что вызов виртуальной функции требует на несколько тактов процессора больше.
a1987zzМудрец (12142) 3 недели назад
а почему функция называется виртуальной, а не реальной какой-нибудь
Андрей Высший разум (430635) a1987zz, Потому, что Страуструп (создатель C++) решил использовать именно такую терминологию. И, кстати, советую ознакомиться с тем, как именно переводится английское слово virtual: https://translate.google.com/?sl=en&tl=ru&text=virtual&op=translate . Оно, в зависимости от контекста, имеет диаметрально противоположные смыслы.
Остальные ответы
Genshin Impact 228 Мастер (1143) 3 недели назад
Мобильность, скорость, эффективность
????ᗪIᗰᗩ TᖇᗩᑎᔕᖴEᗰ???????? Мастер (1030) 3 недели назад
Здравствуйте, полиморфизм в рантайме.
a1987zz Мудрец (12142) 3 недели назад
Еще быть знать, что такое виртуальные функции.
Похожие вопросы