31/05/2014, 14:14
|
| | Fecha de Ingreso: junio-2008 Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 16 años, 6 meses Puntos: 61 | |
Respuesta: Mi cadena se pierde Lo que se ve es la consecuencia de hacer un alias.
El destructor no se está ejecutando 2 veces para el mismo objeto, ni tampoco se necesita implementar el constructor de copia, sino el operator de asignacion. En la instrucción
cadenita = "Adios"
es este operator el que se está usando.
Al no haber un operador de asignacion implementado explicitamente se provee del mismo implicitamente que copia miembro a miembro.
Como hay un puntero al interior de la definicion de la clase, cada objeto tiene uno, al copiar miembro a miembro se produce un alias, luego al destruirse uno de los 2 objetos (al usar delete) el puntero guardado en el otro queda apuntando a una zona que el primero liberó, que es lo que se aprecia en la salida del programa.
__________________ Visita mi perfil en LinkedIn |