Как произходит механизм работы виртуальных методов я языках программирования и чем отличается от обычных методов?

Как произходит механизм работы виртуальных методов я языках программирования и чем отличается от обычных методов?

Интересует эта таблица, но не могу в ней нормально разобраться. Может кто-то простыми словами объяснить?

5ec39e72aa8c8195177309.jpeg
  • Вопрос задан
  • 193 просмотра
Решения вопроса 1
Robur
@Robur
Знаю больше чем это необходимо
Если простыми словами - то обычные методы лежат в памяти по заранее известному месту, и компилятор генерирует инструкцию "вызвать код по адресу XXX".
Вызываемый код всегда один и тот же.

с виртуальными - это зависит от класса, поэтому компилятор генерирует такие инструкции:
"посмотреть что там за класс у obj, сходить в таблицу методов этого класса, найти там адрес для функции ToString, и вызвать код по этому адресу"

для одного класса адрес будет XXX, и вызовется один код, для другого класса будет YYY и вызовется другой код.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы