什么是sizeof(salesman)
?它说 48 字节,需要解释原因。
class customer {
char c;
double l;
int k;
};
class salesman: private customer{
int salno;
char salname[20];
protected :
float salary;
};
最佳答案
好吧,很难对编译器进行事后猜测。
但是 客户
可能合理地需要 1 + 7 + 8 + 4 + 4 = 20 个字节(第 7 个和最后的 4 个是填充)。然后是 salesman
额外的 4 + 20 + 4 = 28,看起来编译器足够聪明,在进行子类化时从 customer
中删除最后 4 个填充字节.那是 48!
上面假设sizeof (int)
和sizeof (float)
为4,sizeof (double)
为8。
关于c++ - 类大小的字节计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21409035/