なぜこれが起こっているのか理解していますが、それを解決しようとして立ち往生しています...プログラムが終了したときにエラーが生成されたとき(したがって、クラッシュにつながる)にコードが実行していることは次のとおりです...
pure virtual method called
SomeClass::~SomeClass()
{
BaseClassObject->SomePureVirtualMethod(this);
}
void DerivedClass::SomePureVirtualMethod(SomeClass* obj)
{
//Do stuff to remove obj from a collection
}
を呼び出すことはありませんが、オブジェクトを追加するnew SomeClassを持っています。このデストラクタの目的は、のコレクションからの特定のインスタンスを削除するように指示することです。QList<SomeClass*>SomeClass*SomeClassDerivedClassSomeClassQList<SomeClass*>
したがって、具体的な例では...
BaseClass=Shape
DerivedClass=Triangle
SomeClass=ShapePropertiesへの参照を所有しているShape
だから、私は電話をかけることはありませんがnew ShapeProperties、のQList<ShapeProperties*>中にはありTriangleます。のデストラクタは、のコレクションからの特定のプロパティを削除するShapePropertiesように指示します。TriangleShapePropertiesQList<ShapeProperties*>