Ver Mensaje Individual
  #10 (permalink)  
Antiguo 12/04/2006, 12:53
MaxExtreme
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 9 meses
Puntos: 17
Yo también, era la primera vez, pero como el mensaje se auto-explicaba, y es un error común tener problemas con la memoria al usar punteros con clases... Pues me imaginé que era el típico problema.

Hay dos maneras de resolver el problema:
1. Declarando (pero no implementando) el ctor copia y el operador =, para que nunca puedas copiar un objeto y nunca caigas en esos problemas, pero te quita mucha funcionalidad.
2. Implementando tú el ctor copia y el operador =. En tu caso, lo único que tienes que hacer es reservar una nueva memoria para la copia o la aisngación, y copiar el contenido al nuevo objeto. El destructor se encargará de destruir todas las memorias de todos los objetos.

En realidad, el compilador lo hace con buena intención y lo hace bien, pero si usas punteros, la cosa cambia. Es diferente el puntero que el contenido, y eso el compilador no lo puede manejar por ti.

También podrías no usar punteros directamente, usarlos inteligentes, o usar contenedores de la STL como std::vector.