//情况1
class IStyle
{
virtual void Print() = 0;
};class IXStyle : public virtual IStyle
{
public:
virtual void PrintX() = 0;
};class IYStyle : public virtual IStyle
{
virtual void PrintY() = 0;
};class MyStyle : public IXStyle,
       public IYStyle
{
public:
virtual void Print() { TRACE("\nNULL");}
virtual void PrintX() { TRACE("\nX");}
virtual void PrintY() { TRACE("\nY");}
};void CNorTestDlg::OnButton3() 
{
int size1 = sizeof(IStyle);   =4
int size2 = sizeof(IXStyle);  =12  不明白
int size3 = sizeof(IYStyle);  =12  不明白
int size4 = sizeof(MyStyle);  =20  更奇怪了
//情况2
class IStyle
{
virtual void Print() = 0;
};class IXStyle : public  IStyle
{
public:
virtual void PrintX() = 0;
};class IYStyle : public  IStyle
{
virtual void PrintY() = 0;
};class MyStyle : public IXStyle,
       public IYStyle
{
public:
virtual void Print() { TRACE("\nNULL");}
virtual void PrintX() { TRACE("\nX");}
virtual void PrintY() { TRACE("\nY");}
};void CNorTestDlg::OnButton3() 
{
int size1 = sizeof(IStyle);   =4
int size2 = sizeof(IXStyle);  =4  不明白
int size3 = sizeof(IYStyle);  =4  不明白
int size4 = sizeof(MyStyle);  =8  更奇怪了
以上为vc6的输出请高手帮我解释一下  谢谢