Я читаю «Внутри объектной модели C++», пытаясь понять, как многократное и виртуальное наследование достигается через vtables. (Я понимаю, что один полиморфизм отлично-хорошо).Макет памяти класса под множественным или виртуальным наследованием и vtable (ы)?
У меня возникли трудности с пониманием того, что именно делается, когда метод должен быть расположен во время виртуального наследования или во время литья, потому что существует множество расчетов смещения.
Может ли кто-нибудь помочь с пониманием того, как многократные vtables используются в примере с несколькими или виртуальными наследованиями? Если бы я мог понять макет и проблему, я, вероятно, мог бы лучше понять эту проблему.
Когда вы говорите о множественном наследовании, вы имеете в виду последовательные остановки (c наследует от b, который наследуется от a), или вы имеете в виду реальное множественное наследование (c наследуется одновременно от a b)? – Christophe
Возможно, этот вопрос поможет http://stackoverflow.com/q/11603198/1741542 –