首页 文章

为什么拥有不同访问控制成员的工会不是标准布局?

提问于
浏览
1

§9.0

7.类S是标准布局类,如果它:(7.3)对所有非静态数据成员具有相同的访问控制(第11条),8标准布局结构是用以下定义的标准布局类 . class-key struct或class-key类 . 标准布局联合是使用类 - 键联合定义的标准布局类 .

AFAICT,§9.0.7.3因§9.2.13而存在

13具有相同访问控制(第11条)的(非联合)类的非静态数据成员被分配,以便后面的成员在类对象中具有更高的地址 . 具有不同访问控制的非静态数据成员的分配顺序未指定(第11条) . 实施对齐要求可能导致两个相邻成员不能立即分配;因此,可能需要空间来管理虚拟功能(10.3)和虚拟基类(10.1) .

但是,这似乎不适用于联合,因为联合的所有(非静态数据)成员具有相同的地址 . 这是标准中的缺陷吗?还是有一些令人信服的理由为什么我没有看到?

1 回答

  • 0

    在我看来,在 union 案例中允许多个访问说明符的好处并没有被不一致的成本和引入的其他词语所抵消 .

相关问题