なぜこれが起こっているのか理解していますが、それを解決しようとして立ち往生しています...プログラムが終了したときにエラーが生成されたとき(したがって、クラッシュにつながる)にコードが実行していることは次のとおりです...
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*
SomeClass
DerivedClass
SomeClass
QList<SomeClass*>
したがって、具体的な例では...
BaseClass
=Shape
DerivedClass
=Triangle
SomeClass
=ShapeProperties
への参照を所有しているShape
だから、私は電話をかけることはありませんがnew ShapeProperties
、のQList<ShapeProperties*>
中にはありTriangle
ます。のデストラクタは、のコレクションからの特定のプロパティを削除するShapeProperties
ように指示します。Triangle
ShapeProperties
QList<ShapeProperties*>