??????Derived???????????????е????????????????????????У?


cl Test.cpp /d1reportSingleClassLayoutDerived


?????????????£?

???????????class Derived????????沼??????????????????????????Base???????????????????????????????Derived::$vftable@ ??virtual function table???????а?????Derived???????е??麯????

??????????

?????????С???????????????????????????????????е????????

???????????


class A
{
    virtual void a()
    {
    }
};
class A1
{
    virtual void a()
    {
    }
};

class B : public A ?? virtual public A1
{
};
void main()
{
    cout<<"sizeof A: "<<sizeof(A)<<endl;
    cout<<"sizeof A1: "<<sizeof(A1)<<endl;
    cout<<"sizeof B: "<<sizeof(B)<<endl; &nbsp; &nbsp; //&nbsp;
}
 


?????????????

??????????????????

cl test.cpp /d1reportSingleClassLayoutB

???????????沼??????????class A??class A1??ClassB???С??????class A???С?????1bytes????漲λ??С?????麯?????4bytes????????麯??????1bytes???λ??????????????A???С??4bytes?????Class A1??????Class B????????class A??class A1?????У???????????B????????????A??A1????????????????????????????A1????vbptr??????????????????????????