Если у меня есть такой код:
class A {
public:
int data1;
}
class B {
public:
virtual void test() {}
}
class C : public A, public B {
int data2;
}
, и когда я сейчас создаю экземпляр C, его структура памяти выглядит примерно так:
B::vtable
A::data1
C::data2
, но то, что я на самом делехочу что-то вроде этого:
A::data1
B::vtable
C::data2
Есть ли какое-то ключевое слово для принудительного порядка наследования?
Используется ли VC ++ 15 для компиляции, и проблема в том, что я используюбольшая автоматически сгенерированная кодовая база, которая использует для всех классов указатели void * для «подделки» виртуальных таблиц ... теперь я использую эту кодовую базу и наследую ее, для этого экземпляра теперь требуется специальный порядок расположения памяти для правильной работы с другой структурой длянагрузить. И эта структура нуждается в данных А. на фронте.