Здравствуйте dupamid, Вы писали:
D>Здравствуйте Amor, Вы писали:
A>>Хотелось бы с Вашей помощью разобраться в деталях виртуального наследования.
A>>Вопрос такой: что на физическом уровне означает выражение
A>>class B : public virtual A {};
A>>Вот с виртуальными функциями все вроде ясно: к объекту добавляется еще 4 байта, которые содержат указатель на виртуальную таблицу класса, которая, в свою очередь, содержит адреса виртуальных функций.
A>>А от сюда уже ясно как реализуется полиморфизм.
A>>А здесь как?
A>>Спасибо.
D>Одна из возможных реализаций очень похожа на таблицы виртуальных функци. В классе B есть указатель на статическую структуру, в которой прописываются смещения для всех виртуальных базовых подобъектов. При обращении к виртуальной базе ее смещение относительно целого класса получается из это таблице по индексу базового класса.
Не понял!
1) "Виртуальные базовые подобъекты" — в моем случае это класс А?
2) Какой смысл этого смещения?
Вообщем хотелось бы пояснее, пожалуйста. В итоге я хочу понять как из всей этой лабуды

какой нибудь далекий потомок понимает, что экземпляр класса А надо создать в единственном экземпляре (в случае множественного наследования)?