[C con Clase] Otra duda
Miguel Alejandro Jimenez Ramirez
cerberbero en gmail.com
Jue Mar 13 19:38:08 CET 2014
De hecho si ese era el error , la inicializacion de las referencias , en el
ejemplo no puse todo el codigo paro es cierto que tenia un constructor en
machin que inicializaba las referencias , despues lo que hice en el
constructor copia fue lo siguiente
XXX(XXX const &a):z(a.z){cout<<a.z.get();}
Algo asi , y funciono bien , muchas gracias or la ayuda seguire preguntando
pero ya con otros ejercicios ,
hasta pronto
2014-03-13 19:06 GMT+01:00 Salvador Pozo Coronado <salvador en conclase.net>:
> Estimado Miguel,
>
> Bueno, veo varios problemas, no sólo en el constructor copia de XXX,
> sino también en el constructor a partir de machin.
>
> En la clase machin, uno de los miembros es una referencia constante a
> un objeto de la clase X.
>
> Las referencias no se pueden dejar sin asignar, de modo que es
> obligatorio declarar un constructor para machin que inicialice
> esa referencia con un valor válido. Por poner un ejemplo:
>
> machin(const X& x): refX(x), b() {}
>
> No existe un constructor para machin que use como parámetro una
> referencia constante a un objeto machin. El que he definido en antes
> usa una referencia a X, y es el único contructor.
>
> Además, igual que con machin, debemos inicializar todas las
> referencias que existan, en este caso, refmachin. Una opción sería
> esta:
>
> XXX(machin const & p):z(p.getX()),refmachin(p) { cout<< z.getb();} //
> pas de problème
>
> El el otro constructor de XXX pasa lo mismo, necesitamos inicializar
> obligatoriamente todas las referencias, y este es el mensaje de error
> que recibes "referencia no inicializada".
>
> Como también hay que inicializar z, de la clase machin, y esa clase no
> tiene constructor copia, tendremos que usar el constructor disponible:
>
> XXX(XXX const &xxx) : z(xxx.z.getX()), refmachin(xxx.refmachin) {
> cout<<z.getb();}
>
> En definitiva, no sé qué errores son producto del ejemplo, pero el
> error que comentas es por no inicializar las referencias.
>
> Recuerda que siempre es obligatorio inicializar las referencias.
>
> Hasta pronto.
> --
> Saludos,
> Salvador mailto:salvador en conclase.net
> Con Clase: http://www.conclase.net
> Blog con Clase: http://blogconclase.wordpress.com
>
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
--
MIGUEL ALEJANDRO JIMENEZ R.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20140313/f1004984/attachment.html>
Más información sobre la lista de distribución Cconclase