[C con Clase] ¿que significa la sentencia .....return *this
Steven Davidson
srd4121 en njit.edu
Mar Sep 21 21:50:57 CEST 2010
Hola Wolverine,
On 9/21/2010 3:35 PM, wolverine_ch wrote:
> ya voy entendiendo....y la referencia de un objeto cuando actua como
> parametro demtro d una funcion, los datos del objeto necesariamente
> se van a modificar al salir dde la funcion?
>
Tenemos acceso directo a la variable, la cual sirve para obtener la
información guardada en ella. Por lo tanto, lo que hagamos con esa
variable puede modificar su información. Por ejemplo,
void inc( int &ref )
{
ref++;
}
int main()
{
int num = 10;
inc( num );
return 0;
}
Si indicamos 'const', entonces no podemos modificar nada acerca de esa
variable. Por ejemplo,
void mostrar( const int &ref )
{
cout << ref;
}
int main()
{
int num = 10;
mostrar( num );
cout << endl;
mostrar( 20 );
cout << endl;
return 0;
}
Como puedes ver, se nos permite pasar valores literales como parámetros,
porque la referencia es a un valor constante.
Lo mismo sucede con tipos y objetos más complejos. Por ejemplo,
struct Persona
{
char szNombre[100];
char szApellidos[200];
};
void asignarNombre( Persona &ref, const char szNombre[100] )
{
strncpy( ref.szNombre, szNombre );
}
Aquí vemos que 'szNombre' de un objeto en 'asignarNombre()' es
modificado, mientras que 'szApellidos' no lo es.
Hasta pronto,
Steven
Más información sobre la lista de distribución Cconclase