Изменится компилятор, может измениться место хранения vtable, и смещения перестанут работать. Полиморфизм можно описать в C стандартными смещениями в памяти и прямыми указателями на функции.

Комментарии: 4

  1. 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

          адрес памяти в памяти ?

Не нашли ответ?

Вам также может быть интересно