Ver Mensaje Individual
  #7 (permalink)  
Antiguo 31/05/2014, 14:14
CalgaryCorpus
 
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