Cómo resolver el "método virtual puro llamado"
Entiendo por qué sucede esto, pero estoy atascado tratando de resolverlo ... esto es lo que hace mi código cuando se genera el error (lo que provoca una falla) cuando mi programa sale ...
pure virtual method called
SomeClass::~SomeClass()
{
BaseClassObject->SomePureVirtualMethod(this);
}
void DerivedClass::SomePureVirtualMethod(SomeClass* obj)
{
//Do stuff to remove obj from a collection
}
Nunca tengo una llamada anew SomeClass
pero tengo unQList<SomeClass*>
que adjuntoSomeClass*
objetos a El propósito de este destructor enSomeClass
es decirDerivedClass
para eliminar una instancia específica deSomeClass
de su colección deQList<SomeClass*>
.
Entonces, en un ejemplo concreto ...
BaseClass
= Shape
DerivedClass
= Triangle
SomeClass
= ShapeProperties
que posee una referencia aShape
Por lo tanto, nunca tengo una llamada anew ShapeProperties
pero tengo unQList<ShapeProperties*>
dentro deTriangle
. El destructor enShapeProperties
es decirTriangle
para eliminar una propiedad especifica deShapeProperties
de su colección deQList<ShapeProperties*>
.