[C con Clase] Asignar un puntero a un objeto?
Programante
programante en gmail.com
Vie Ene 1 21:46:28 CET 2010
Utopic escribió:
> Hola buenas, ahí vauna duda filosofica:
>
> Tengo un objecto "rectangulo", con su dos coordenadas X e Y, su anchura y su
> altura, y una función que recibe otro rectangulo como uno de sus parámetros,
> por referencia. Asignar directamente el parametro (puntero) al objecto no
> copiaria los atributos, verdad? debo copiar los cuatro atributos "a mano":
>
> void inicializacion( int uno, Rectangulo* rectangulo, int tres)
> {
> Rectangulo rectangulo;
> rectangulo = _rectangulo; //Copia las coordenadas X, Y y el tamaño W, H?
> }
>
> void inicializacion( int uno, Rectangulo* rectangulo, int tres)
> {
> Rectangulo rectangulo;
>
> //Así si, pero es mas "feo".
> rectangulo.x = rectangulo->x;
> rectangulo.y = rectangulo->y;
> rectangulo.w = rectangulo->w;
> rectangulo.h = rectangulo->h;
> }
>
> Gracias,
>
Exacto.
No puedes asignar un objeto a un puntero.
Lo que sí podrías hacer es
rectangulo = *_rectangulo;
Siempre y cuando sobrecargaras el operador de asignación de la clase
rectángulo para que copiara todos los atributos.
En el operator= tendrías que poner el "código feo", pero en todos los
demás sitios te funcionaría con un simple =
Más información sobre la lista de distribución Cconclase