次のクラス階層があります。
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*) ですが、アプリケーションは引き続きクラッシュします...