PROBLEMA CON DESTRUCTORES
Publicado por Chema (1 intervención) el 02/12/2014 20:47:48
Hola, estoy desarrollando una aplicación y tengo problemas con los destructores.
Tengo algunas clases que contienen a su vez otras clases.
Lo que hago es que, al crear una clase, en el constructor llamo a los constructores de las clases contenidas.
La aplicación funciona bien.
El problema viene cuando intento liberar la memoria de objetos.
Hay un único objeto que enbloba varios objetos que a su vez engloban otros. Hay objetos contenidos en 4 ó 5 niveles.
He escrito el destructor de tal forma que primero se destruyen los objetos contenidos, desde el último nivel al primero.
En la última sentencia llamo al destructor padre (inherited destroy). Esto lo hago en todos los destructores de todas las clases.
La aplicación no me da error, pero puedo comprobar en el administrador de tareas que la memoria no se libera.
¿Alguna idea de qué puede estar sucediendo?
Gracias.
pd: Se me olvidó decir que la aplicación está desarrollada con Lazarus.
Tengo algunas clases que contienen a su vez otras clases.
Lo que hago es que, al crear una clase, en el constructor llamo a los constructores de las clases contenidas.
La aplicación funciona bien.
El problema viene cuando intento liberar la memoria de objetos.
Hay un único objeto que enbloba varios objetos que a su vez engloban otros. Hay objetos contenidos en 4 ó 5 niveles.
He escrito el destructor de tal forma que primero se destruyen los objetos contenidos, desde el último nivel al primero.
En la última sentencia llamo al destructor padre (inherited destroy). Esto lo hago en todos los destructores de todas las clases.
La aplicación no me da error, pero puedo comprobar en el administrador de tareas que la memoria no se libera.
¿Alguna idea de qué puede estar sucediendo?
Gracias.
pd: Se me olvidó decir que la aplicación está desarrollada con Lazarus.
Valora esta pregunta


0