【发布时间】:2017-02-15 16:15:23
【问题描述】:
standard-layout 类在 C++14 的 [class]/7 中定义,如下(重点是我的):
标准布局类是这样的类:
- (7.1) — 没有非标准布局类型的非静态数据成员 类(或此类类型的数组)或引用,
- (7.2) — 没有虚函数 (10.3) 和虚基类 (10.1),
- (7.3) — 对所有非静态具有相同的访问控制(第 11 条) 数据成员,
- (7.4) — 没有非标准布局基类,
- (7.5) — 要么在最派生的中没有非静态数据成员 类 和 至多一个具有非静态数据成员的基类,或具有 没有具有非静态数据成员的基类,并且
- (7.6) — 没有与第一个非静态相同类型的基类 数据成员。
我的担忧与项目符号 (7.5) 相关:如何在最派生的类中拥有 no 非静态数据成员,同时拥有一个具有非静态数据成员的基类?静态数据成员?
换句话说,基类的非静态数据成员不也是最派生类的非静态数据成员吗?
【问题讨论】:
-
把物体想象成俄罗斯的马特鲁斯卡娃娃。最衍生的对象是娃娃的外壳。而最基本的对象是其核心。
-
最终,它们是不同的娃娃。
-
你是说俄罗斯套娃吗?
-
@bipll 是的,那些:P
标签: c++ c++14 language-lawyer