Układ tabeli wirtualnej C ++ MI (wielokrotne dziedziczenie)

Spójrz na następujący kod 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;  
}; 

《Inside of C ++ Object Model》 4.2 mówi, że układ wirtualnej tabeli klasy Base1, Base2 i Derived wygląda następująco:

Moje pytanie brzmi :

Zawiera wirtualną tabelę podelementu Base1 klasy DerivedBase2::mumbleWiem, że klasa Derived współdzieliła tę wirtualną tabelę z Base1, więc myślę, że funkcja Base2 nie powinna się tutaj pojawiać. Czy ktoś mógłby mi powiedzieć dlaczego? Dzięki.

questionAnswers(2)

yourAnswerToTheQuestion