[Índice][Previo][Siguiente]

Referencias

Además de la declaración normal de variables, C++ permite que se declaren referencias como sinónimos de variables:

  #include <iostream.h>
  main()
  {
   int numero = 12;
   int &ref = numero;    cout << "número tiene el valor:" << numero << '\n';
   numero = 17;
   cout << "ref tiene el valor:" << ref << '\n';
  }

que produce la siguiente salida por pantalla:

número tiene el valor:12
ref tiene el valor:17

En este ejemplo, ref es una referencia a un entero, numero. Por tanto, ambos ocupan la misma localización de memoria. La referencia ref se convierte en sinónimo de la variable numero. Las dos operaciones:

numero ++;
ref ++;

tienen el mismo efecto.
Cuando se declara, una referencia debe ser siempre inicializada para referenciar a una variable. En caso contrario, el compilador dará error. Después de su inicialización, la referencia no puede cambiarse para referenciar a otra variable.

La forma en que el compilador de C++ implementa las referencias es usando punteros internamente, es decir, las referencias en C++ son punteros ordinarios en lo que concierne al compilador. Sin embargo, el programador no ha de preocuparse por ello.

Las principales diferencias entre punteros y referencias son:

Brokken y Kubat recomiendan:

Las referencias pueden conducir a código poco elegante. Una función puede devolver una referencia a una variable, como en el siguiente ejemplo:

   int &func (void)
   {
     int value;
     return (value);
   }
Esto permite las siguientes utilizaciones:

   func () = 20;
   func () + = func();
Tales construcciones deben evitarse.

[Índice][Previo][Siguiente]


Última modificación: 13-3-97

Comentarios, sugerencias, ideas...

© Beatriz Fuentes Arenaz, 1996-1997