gpt4 book ai didi

c++ - 嵌套空类

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:03:03 25 4
gpt4 key购买 nike

我有以下代码

class nest_empty
{
class empty{};
};

nest_empty 的大小是否为 1(在我的实现中,空类的大小为 1)?如果是,为什么? nest_empty 可以被认为是一个空类吗?

编辑:

class nest_empty
{
class empty{};
empty d;
};

nest_empty 的大小仍然是 1 吗?如果是,为什么?

最佳答案

nest_empty 的第一个版本是一个空类(没有非静态数据成员,也没有非空基),因此如果它们在您的实现中的大小为 1,则它的大小为 1。

“为什么”是因为空类在您的实现中具有大小 1,这反过来又是因为它们不能具有大小 0(标准禁止),而您的实现者选择了 1。

您的第二个 nest_empty 不是空类(它有一个非静态数据成员)。它可以合法地具有大小 1,因为它唯一的非静态数据成员 d 属于 empty 类型,这是一个空类,因此大概大小为 1。

不过,我无法告诉您它是否真的会在您的实现中使用大小 1。问问你的编译器。

关于c++ - 嵌套空类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4256458/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com