[C con Clase] sobre operadores
Steven Davidson
srd4121 en njit.edu
Lun Jun 15 19:30:54 CEST 2009
Hola Kalith,
Kalith wrote:
> Buenas tengo duda con dos operadores y no encuentro una referencia
> clara sobre todo del primero:
>
> el operador ^ se que es un operador para manejo de bits pero lo he
> visto usar asi:
>
> string^ variable
>
Nunca he visto este uso con cadenas y variables. Sospecho que se trata
de una sobrecarga del operador ^ para realizar otra operación. Su
funcionalidad primitiva resultaría en algo incoherente.
> /*... */
>
> otro operador es el operador de direccion normalmente o por lo que yo
> conozco usado de esta forma
>
> &a siendo a una variable eso para obtener una direccion de memoria
>
> o en funciones
>
> void foo(int &valor)
>
> pero lo he visto ultimamente que lo usan asi
>
> int var&
>
> class var&
>
> como parametros de funciones etc
>
En esta situación, debes tener presente que el símbolo & es un operador
en C/C++ pero también un declarador en C++. Esto significa que en C++,
podemos usar & como un operador en una expresión con el fin de conseguir
la dirección de memoria de un "valor izquierda", como se llama
comúnmente; esto suele ser una variable.
Con un declarador, el símbolo & significa que estamos declarando una
referencia, que es un sobrenombre o "apodo" para una variable. Por ejemplo,
int var = 4;
int & ref = var;
Con funciones, podemos usar referencias para pasar información por
referencia, valga la redundancia. Por ejemplo,
void inc( int &ref ) { ref++; }
...
cout << inc( var );
Aparecerá en pantalla:
5
porque hemos pasado 'var' por referencia.
Espero haber aclarado las dudas.
Steven
Más información sobre la lista de distribución Cconclase