课程的大小是多少?

时间:2010-10-11 01:43:11

标签: c++ class

  

可能重复:
  Empty class in C++

class Class1
{
char c;
};

class Class2
{
};

Class1和Class2的大小是多少?

在VC6中,我得到了两个1.有人可以解释一下吗?

1 个答案:

答案 0 :(得分:6)

任何类的大小都不能小于1,因为指针运算(特别是减法运算符)可以除以大小,并且除以零是未定义的。每个实例都必须具有唯一的地址,这意味着必须为每个实例分配至少一个字节的地址空间,因此最小的大小也是一个。

所以sizeof (Class1) == 1因为这是内容所需要的,sizeof (Class2) == 1因为这是允许的最小值。