我有以下类层次结构:
class Base
{
public:
virtual ~Base();
};
class Derived : public Base
{
public:
virtual ~Derived();
};
class MoreDerived : public Derived
{
public:
virtual ~MoreDerived();
};
连同一个物体
Base* base = new Base();
MoreDerived* obj = new MoreDerived(*base);
有一部分代码我需要使用线程删除 MoreDerived 对象,因此必须先将其转换为 void*。在线程中,我有
void KillObject(void* ptr)
{
delete static_cast<Base*>(ptr);
}
非指针为 NULL,并且void* ptr 是 MoreDerived *(或至少是 Base*),但应用程序仍然崩溃......