我无法了解类(class)规模是如何确定的。 sizeof(用户) 是 12 吗?任何人都可以请。解释一下背后的原因吗?
class dob
{
public:
int dd;
dob(){}
dob(int d)
{
dd = d;
}
};
class User
{
public:
int Id;char Name;dob d;
User(int id, dob i, char name)
{
Id = id;
d = i;
Name = name;
}
};
最佳答案
类的大小至少与其成员的总大小一样大;它还可能包括填充,以便为每个成员提供所需的对齐方式。
据推测,对于您来说,int
是四个字节,并且具有四个字节的对齐要求。因此,在 char
成员后面添加了三个字节以提供所需的对齐方式,总大小为 12 个字节。
多态类和具有虚拟基类的类可能包含额外的“隐藏”数据来支持这些内容,但您的类的情况并非如此。
关于c++ - 包含另一个类的对象的类的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30127417/