各位高手,我发现一个虚拟继承的奇怪问题,请指教?

suyksuyk 2009-10-12 05:51:16
class M
{
public:
virtual void a(){cout << "a "<<endl;};
M():m(50){};
int m;
};
class N:virtual public M
{public:
virtual void a(){cout << "b "<<endl;};
/* N():aa(50){};*/
int aa;
};

上面的代码,在VC6下,sizeof(N)大小,在N提供构造函数,和不提供构造函数时,大小相差4个字节。
...全文
71 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
z0203153008 2009-10-12
  • 打赏
  • 举报
回复
要不换个编译器试试
估计不太一样
qiuyatao 2009-10-12
  • 打赏
  • 举报
回复
在vc++上貌似真有这个问题...
gcc_gun 2009-10-12
  • 打赏
  • 举报
回复
这应该是编译器的差异吧?如果不用虚继承的话呢?是不是情况也是如此?

64,281

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧