c++ - 包含另一个类的对象的类的大小

标签 c++ class sizeof

我无法了解类(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/

相关文章:

c++ - 最近盒子的面积

c++ - vector 加法运算

javascript - 如何从另一个类调用 javascript 类并在数组中推送(追加)值?

c - 有没有更好的方法来计算一维数组包含多少个元素?

c++ - constexpr 数组引用参数

c++ - 使用 ffmpeg 库向 HEVC 添加时间戳,与 Gstreamer 管道运行时时间戳不匹配

c++ - 为类的成员创建别名

c# - 在一个类中声明太多方法会使它变大吗?

c - 如何确定结构成员的大小?

c - 将 sizeof 与动态分配的数组一起使用