C ++ виртуальная таблица MI (множественное наследование)

Посмотрите на следующий код C ++

class Base1 {  
public:  
    Base1();  
    virtual ~Base1();  
    virtual void speakClearly();  
    virtual Base1 *clone() const;  
protected:  
    float data_Base1;  
};  

class Base2 {  
public:  
    Base2();  
    virtual ~Base2();  
    virtual void mumble();  
    virtual Base2 *clone() const;  
protected:  
    float data_Base2;  
};  

class Derived : public Base1, public Base2 {  
public:  
    Derived();  
    virtual ~Derived();  
    virtual Derived *clone() const;  
protected:  
    float data_Derived;  
}; 

«Внутри объектной модели C ++» 4.2 говорится, что макет виртуальной таблицы классов Base1, Base2 и Derived выглядит следующим образом:

Мой вопрос:

Виртуальная таблица субобъекта Base1 класса Derived содержитBase2::mumbleПочему я знаю, что класс Derived поделился этой виртуальной таблицей с Base1, поэтому я думаю, что функция Base2 не должна появляться здесь. Может кто-нибудь сказать мне, почему? Спасибо.

Ответы на вопрос(2)

Ваш ответ на вопрос