0

如果我有这样的代码:

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* 指针来“伪造”vtables ...现在我使用该代码库并继承它,这个实例现在需要特殊顺序的内存布局才能与要加载的不同框架一起正常工作。而那个框架需要前面的A数据。

4

0 回答 0