【发布时间】:2012-10-25 00:48:57
【问题描述】:
我正在用 C++ 编写解释器,我想确保某些 C++ 数据类型在通过解释代码访问时具有可预测的布局,尤其是在使用反射时。例如,我想确保第一个数据字段始终位于对象地址的零偏移处。现在,这对于纯 POD 类型来说是微不足道的。但是,我想知道这是否也适用于具有继承或构造函数的对象,只要我避免像虚函数或多重继承这样的明显事物。假设编译器将以与 C 编译器相同的方式布局这些类型是否合理,或者 C++ 标准中的“未指定行为”是否是我需要担心的事情?
【问题讨论】:
标签: c++ inheritance compiler-construction