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