c ++ - 有没有办法拥有“内联”结构(类似于内联命名空间)

时间:2017-03-18 18:16:21

标签: c++ inheritance struct inline standard-layout

如果我有两个结构:

struct Base {
    int a;
};

struct Derived : Base {
    int b;
};

然后使用实例Derived d,我可以ab直接访问d.ad.b

但是,使用此设置,Derived不是标准布局类型。

如果我想使它成为标准布局,我可以做类似的事情:

struct Derived {
    Base base;
    int b;
};

但是要访问a我必须像以前一样使用d.base.a而不是d.a

我能否以允许我访问Deriveda的方式声明b结构,如第一个示例所示,同时保持标准布局类型?

0 个答案:

没有答案