网易c++一道选择题

class A
{
  char a[2];
}
class B:public A
{
   char a[2];
   char b[2];
}
int main()
{
    cout<<sizeof(A)<<endl<<sizeof(B)<<endl;
}

题目问64位机器下输出多少,我觉得sizeof(A)是2啊?结果答案里只有8和16

全部评论
你题目记错了,有虚函数的。顺便字节对齐
点赞 回复 分享
发布于 2018-03-27 22:24
题目中有A,B都有虚函数,有虚函数,类中会有一个虚指针,在64位系统中,指针大小为8,数据对齐,会补6,所以为16.
点赞 回复 分享
发布于 2018-03-27 22:25
你看错了
点赞 回复 分享
发布于 2018-03-28 09:02
你看错了。 人家是虚继承
点赞 回复 分享
发布于 2018-03-28 08:47

相关推荐

不像现在的我,已经是虚伪的社会人了。
真烦好烦真烦:好有个性的一段话,导师没有让你修改吗
点赞 评论 收藏
分享
高斯林的信徒:武大简历挂?我勒个骚岗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务