January 20th, 2020

ABI: вызовы виртуальных методов

В прошлый раз мы рассмотрели, как вызывается метод класса. Что изменится, если метод будет виртуальным? Давайте проверим. Но здесь есть одна проблема: если мы просто объявим какой-то метод класса виртуальным, создадим экземпляр класса и вызовем его метод, то компилятор просто вызовет соответствующую функцию, без обращения к таблице виртуальных методов (девиртуализация). Поэтому давайте напишем такой код:

( Читать дальше... )