#include <cstdio>
class A { public: int a; };
class B : public virtual A { };
class C : public virtual A { };
class D : public B, public C { };
class E : public virtual A { };
class F : public D, public E { };
int main(int argc, char* argv[])
{
F f;
printf("E::A: %p D::A: %p", (A*)(E*)&f, (A*)(D*)&f);
return 0;
}
I2luY2x1ZGUgPGNzdGRpbz4KCmNsYXNzIEEgeyBwdWJsaWM6IGludCBhOyB9OwpjbGFzcyBCIDogcHVibGljIHZpcnR1YWwgQSB7IH07CmNsYXNzIEMgOiBwdWJsaWMgdmlydHVhbCBBIHsgfTsKY2xhc3MgRCA6IHB1YmxpYyBCLCBwdWJsaWMgQyB7IH07CmNsYXNzIEUgOiBwdWJsaWMgdmlydHVhbCBBIHsgfTsKY2xhc3MgRiA6IHB1YmxpYyBELCBwdWJsaWMgRSB7IH07CgppbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQp7CglGIGY7CgoJcHJpbnRmKCJFOjpBOiAlcCBEOjpBOiAlcCIsIChBKikoRSopJmYsIChBKikoRCopJmYpOwoKCXJldHVybiAwOwp9Cg==