функций в каждом объекте класса вместо хранения в качестве статичного поля класса?
Где ты такое прочитал?
а что означает стат. поле?
Тем что это динамический полиморфизм
Потому что таблица виртуальных функций на каждый объект своя
Это не обусловлено, это не специфицировано
Но тебе нужно вычислить что это за реальный класс, как ты это со статиком сделаешь я хз
Я это понимаю
Хранится не таблица, а указатель на неё
А если в таблице только одна функция?
Но это лишние переходы по памяти, нет?
Да нет, у тебя сама структура с указателями лежит рядом с классом
я как-то показывал реализацию динамического полиморфизма на С, может найдешь это интересным для себя, посмотришь как выглядят потроха https://gist.github.com/anatoly-spb/8fb267941b22d1d408f0f160fdc8a8d9#file-stream-h
Да я вот сам только недавно делал что-то похожее на Си, чтобы для себя разобраться
интересный пример
А как это тогда понимать?
сама таблица для каждого класса уникальна (статична), а вот указатели в объекте могут быть на разные таблицы виртуальных функций, в зависимости от класса, указатель на таблицу виртуальных функций устанавливается при конструировании объекта класса
Ну я так и написал
vptr все равно получается статическим полем
Обсуждают сегодня