根本的なことなんですが、newで派生クラスのインスタンスを基礎クラスにキャストしてdeleteてできました??
環境が無いので試せない・・・

class Base {
int nBase;
}

class Hoge : Base {
int nHoge;
}

main() {
Hoge* pHoge= new Hoge;

Base* pBase = (Base*)pHoge;

delete pBase; //<--これって問題?
}