[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