Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Problema con destructores

Iniciado por neroir, 25 de Mayo de 2009, 05:20:15 PM

« anterior - próximo »

neroir

Buenas.

Tengo un pequeño problema con unos destructores y no consigo solucionarlo. A ver si alguien q no sea tan novato como yo con el C++ puede echarme una mano.

Tengo una clase CWarehouse que deriva de una clase base CMapObject y en un punto de mi programa, tengo un puntero a un CMapObject. En principio, ese puntero podrá estar apuntando a una instancia de la clase base, o a una de la clase derivada (CWarehouse).

Si hago un delete del puntero, el programa llama siempre al destructor de la clase base, y nunca al de la derivada, por lo que he recordado que en casos como este lo que hay que hacer es declarar el destructor de la clase base como virtual.... y es aquí donde aparecen los problemas, ya que me da un error de linkado:

error LNK2019: unresolved external symbol "public: __thiscall CMapObject::~CMapObject(void)" (??1CMapObject@@QAE@XZ) referenced in function "public: void * __thiscall CMapObject::`scalar deleting destructor'(unsigned int)" (??_GCMapObject@@QAEPAXI@Z)

Alguna idea de qué está causando el problema exactamente y cómo debo resolverlo?

neroir

Me respondo yo solo... era por tener includes cruzados entre la clase del CMapObject y la que hacía el delete :P






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.