virtual void foo();class B : public A { virtual ~B();};
当我们谈论多重继承时,特别是当我们谈论钻石继承时,或者当我们谈论一个虚拟类时,我们很难在内存中布局某个类的对象,比如:
class E : public C, public virtualendl
有时,C++编译器会在同一二进制文件中为相同类型的T生成不同的内存布局。也就是说,当对象既作为类的非连续子对象发生,又作为独立的对象或数组子对象发生时,就会发生这种情况:struct B : virtual A { int i;D d;B* p1= &(B&)d;根据C++14标准,编译器是否可以在单个二进制文件中为T类型的对象生成任意数量的