Ver Mensaje Individual
  #2  
Antiguo 13-04-2019
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Reputación: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Cuando trabajas con punteros debes tener una cosa bien clara, copiar un puntero no es copiar el elemento al que apunta. Por eso todo lo que hagas en a, ocurre en A porque ambos apuntan a la misma cosa.


Para que a y A apunten a objeto diferentes deberás crearlos y asignarlos. Si quieres que a tenga una copia del contenido de A, deberas realizarla. Si cu clase ConjuntoPtrtiene un constructor copia o definido un operados de asignación, podrás hacer la copia sin problemas pero de esta forma (que copia el valor y no el puntero):

Código:
ConjuntoPtr *a=new ConjuntoPtr;

*a = *A;

Recuerda que CPP permite trabajar con objetos de una clase que no son punteros:
Código:
ConjuntoPtr a = *A;


En el primer caso debes tener definido un operador asignación y en el segundo un constructor copia. Es buena costumbre tener ambos.


Saludos.
Responder Con Cita