Logo

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