[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