我明白这是为什么发生的事情,但我坚持努力解决它...这里是我的代码做的是产生错误时(因此,导致崩溃)时,我的程序退出...
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*>