Carlos Pantelides, el 24 de noviembre a las 11:26 me escribiste: > y para que no haya slicing uso un puntero: > > SubClase * objeto = new Clase(otroObjeto);
Como te dije en el mail anterior, esto no tiene sentido, y es imposible tener slicing al crear algo en el stack. El problema del slicing es al pasar/recibir cosas por argumento o donde pueda ejecutarse el constructor de copia implícitamente. > pero como no quiero preocuparme por destruirlo, quiero una referencia > (aqui habia un error de tipeo, decia "SubClase objeto"): > > SubClase & objeto(otroObjeto); Esto tiene menos sentido que lo anterior. Eso se escribiría así: SubClase & objeto = otroObjeto; Y lo que significa eso es que querés que objeto sea una referencia a una SubClase, pero le estás asignando una instancia de OtraClase, cosa que no va a andar. > Me parece que en ninguno de los tres casos hay slicing porque siempre es > SubClase, es asi? En el primero no hay slicing porque estás creando el objeto ahí, es imposible que haya slicing si no hay copia. En el segundo no hay slicing tampoco por la misma razón, no hay copia, pero está roto de todas maneras porque estás haciendo un downcasting incorrecto (una Clase no es una SubClase). En el tercer caso no hay slicing porque no compila =) -- Leandro Lucarella (luca) | Blog colectivo: http://www.mazziblog.com.ar/blog/ ---------------------------------------------------------------------------- GPG Key: 5F5A8D05 (F8CD F9A7 BF00 5431 4145 104C 949E BFB6 5F5A 8D05) ---------------------------------------------------------------------------- Ever tried? Ever failed? - Try again! Fail better!
_______________________________________________ Lista de correo Programacion. [email protected] http://listas.fi.uba.ar/mailman/listinfo/programacion
