Изменится компилятор, может измениться место хранения vtable, и смещения перестанут работать. Полиморфизм можно описать в C стандартными смещениями в памяти и прямыми указателями на функции.
Изменится компилятор, может измениться место хранения vtable, и смещения перестанут работать. Полиморфизм можно описать в C стандартными смещениями в памяти и прямыми указателями на функции.
Комментарии: 4
Artem
Можно, но это уже отдельная задача Думаю принцип работы не поменяется, адрес то к объекту привязан
Argentina
вот этого я не понял: "в памяти объект выглядит так Derived layout: 68 45 20 40 1F FF FF FF 80 45 20 40 F1 EE FF FF соответственно 68 45 20 40 указатель на таблицу для base1 и derived а 80 45 20 40 на таблицу base2". можешь объяснить что ты имеешь в виду под понятием указатель в данном контексте ?
Artem
адрес в памяти где находится таблица. в зависимости от реализации конкретного компилятора либо ее начало либо определенное положение в ней
Argentina
адрес памяти в памяти ?