基本上这是对这个问题的跟进 ..
当我查看标准文档时,我发现了这个..
在9.3类中,
类类型的完整对象和成员子对象应具有非零大小.96) ......
是的,是的..但是,
96)基类子对象不受约束.
所以,当我查看Stroustrup的FAQ时,有一个例子
void f(X* p)
{
void* p1 = p;
void* p2 = &p->a;
if (p1 == p2) cout << "nice: good optimizer";
}
Run Code Online (Sandbox Code Playgroud)
我的问题是我无法理解它是如何进行优化的,以及为什么基类允许零大小?