在多继承类中,用不同父类指针delete对象时的问题
// begin test code
class Base
{
public:
virtual ~Base(){}
};
struct IFace
{
public:
virtual ~IFace() {}
};
class Module1 : public IFace, public Base
{
};
class Module2 : public Base, public IFace
{
};
IFace* i1 = ONYX_New(Module1);
ONYX_Delete(i1); // ok
IFace* i2 = ONYX_New(Module2);
ONYX_Delete(i2); // crash here...
// end test code
有好的解决方案吗?第二个指针有四字节的偏移量应该是第一个父类的虚函数表所致。