//情况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的输出请高手帮我解释一下 谢谢
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的输出请高手帮我解释一下 谢谢
解决方案 »
- 散分,谁有PowerDVD 10/11 的独立滤镜,分享下
- 在类中可以定义自己的对象吗?MFC或ATL或者其他语言,谢谢
- Edit Box 怎么从右到左输入
- 怎样再shellexecute中使用regasm.exe注册dll
- 请问各位从哪里能找到VB高手?或是WINDOWS编程高手?或API高手?
- 紧急求助!再线等待!
- 怎样动态删除菜单子项,例如删除File菜单的New子项!(解决了立即给分)~
- help!!!!!!!
- 急,在线等待各位神仙的点化,关于对话框
- 如何捕获操作系统的GDI消息
- asp调用com组件出现:对象不支持此属性或方法错误
- 郁闷:Invalid Address specified to RtlValidateHeap,这个错误该怎么办
虚函数指针
数据区