Si, esta forma me gustó. Voy a probarla. Gracias mil!
Saludos. R.

----- Original Message ----- From: "John Knight" <[EMAIL PROTECTED]> To: "Una lista para consultas de programación" <[email protected]>
Sent: Sunday, October 21, 2007 4:51 PM
Subject: Re: [Prog] Constructores de Copia.


Cuando hago b->metodo() llama a los metodos de d. Ok hasta ahi.
Ahora como hago para tener una copia de b de nombre c que cuando diga
siga llamando a los metodos de d;

el CC de Base siempre crea instancias de clase Base, la copia creada nunca
va a tomar comportamiento de la clase Derivada

me parece q a lo q apuntas es usar Base* para utilizar el polimorfimo de las
clases q cuelgan de Base
si queres clonar un Base* y no sabes de antemano con que clase deberias
hacer el new, podes hacer lo siguiente:

Base* d = new Derivada;
Base* c = d->Clone();

el Clone() del objeto "d" te devolveria un Base* usando un new Derivada
para esto deberias tener un metodo Clone() en Base, q sea virtual
(dependiendo del caso podria ser abstracta)
y en cada clase q herede de Base vas a tener q sobrecargarla para q haga el
new _clase_Derivada
espero q te sirva
saludos

----- Original Message ----- From: "Rubén Daddario" <[EMAIL PROTECTED]>
To: "Una lista para consultas de programación"
<[email protected]>
Sent: Sunday, October 21, 2007 4:19 PM
Subject: Re: [Prog] Constructores de Copia.


Mas precisamente me está pasando esto:

Base *b;
Derivada d;

b = &d;

Cuando hago b->metodo() llama a los metodos de d. Ok hasta ahi.
Ahora como hago para tener una copia de b de nombre c que cuando diga

c->metodo()

siga llamando a los metodos de d;

Gracias por el tiempo. Saludos.

----- Original Message ----- From: "personaje" <[EMAIL PROTECTED]>
To: "Una lista para consultas de programación"
<[email protected]>
Sent: Saturday, October 20, 2007 10:19 PM
Subject: Re: [Prog] Constructores de Copia.


On 10/20/07, Rubén Daddario <[EMAIL PROTECTED]> wrote:


Buenas. Espero ser breve.

Cual es la forma correcta de crear un constructor de copia para una
clase
hija??
El problema que tengo es que si a un objeto padre le asigno un objeto
hijo,
cuando hago la copia de padre no me copia los atributos de hijo.


El polimorfismo se logra con punteros o referencias, no con instancias...

Si a una instancia de la clase base, le asignas una instancia de la
clase derivada, sólo te va a copiar la parte base, no se va a
transformar mágicamente en la clase derivada, porque no tiene
conocimiento de la clase base...

Lo que vos estás buscando hacer se logra con punteros o referencias...
si tenés un puntero a la clase base y lo usás para apuntar a una clase
derivada todo funciona bien, claro que ahí no entra en juego el ctor
de copia.

saludos

_______________________________________________
Lista de correo Programacion.
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/programacion

__________ NOD32 2604 (20071019) Information __________

This message was checked by NOD32 antivirus system.
http://www.eset.com



_______________________________________________
Lista de correo Programacion.
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/programacion


--
No virus found in this incoming message.
Checked by AVG Free Edition. Version: 7.5.488 / Virus Database:
269.15.5/1084 - Release Date: 21/10/2007 03:09 p.m.



__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis! ¡Abrí tu cuenta ya! - http://correo.yahoo.com.ar
_______________________________________________
Lista de correo Programacion.
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/programacion


_______________________________________________
Lista de correo Programacion.
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/programacion

Responder a