Не думаю, что это будет, я не знаю, зачем это нужно.
У меня есть связанный вопрос.
если у вас есть наследство алмазов:
class Base(){ virtual void AFunc(){} };
class A:Base{};
class B:Base{void AFunc(){} }
class Test:A,B{};
Base * b = (Base*)new Test;
b->AFunc();
давайте предположим, что структура памяти является базовой: A: B: Test,
обратите внимание, что в момент вызова компилятор знает только адрес начала объекта, и AFunc ожидает, что он будет относительно начала объекта B, эти два адреса не будут одинаковыми! так как это работает?
как если бы b имел тип B, два адреса были бы одинаковыми ...