Как решить «чисто виртуальный метод называется»

Я понимаю, почему это происходит, но я застрял, пытаясь ее решить ... вот что делает мой код, когда генерируется ошибка (таким образом, приводит к сбою), когда моя программа завершает работу ...

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*>.

Ответы на вопрос(2)

Ваш ответ на вопрос