Referencias de C ++
Una variable de referencia es un alias, es decir, otro nombre para una variable ya existente. Una vez que se inicializa una referencia con una variable, se puede usar el nombre de la variable o el nombre de la referencia para hacer referencia a la variable.
Referencias vs punteros
Las referencias a menudo se confunden con punteros, pero las tres diferencias principales entre referencias y punteros son:
No puede tener referencias NULL. Siempre debe poder asumir que una referencia está conectada a una pieza de almacenamiento legítima.
Una vez que se inicializa una referencia a un objeto, no se puede cambiar para hacer referencia a otro objeto. Los punteros pueden apuntar a otro objeto en cualquier momento.
Una referencia debe inicializarse cuando se crea. Los punteros se pueden inicializar en cualquier momento.
Creando referencias en C ++
Piense en un nombre de variable como una etiqueta adjunta a la ubicación de la variable en la memoria. A continuación, puede pensar en una referencia como una segunda etiqueta adjunta a esa ubicación de memoria. Por lo tanto, puede acceder al contenido de la variable a través del nombre de la variable original o la referencia. Por ejemplo, supongamos que tenemos el siguiente ejemplo:
int i = 17;
Podemos declarar variables de referencia para i de la siguiente manera.
int& r = i;
Lea el & en estas declaraciones como reference. Por lo tanto, lea la primera declaración como "r es una referencia entera inicializada en i" y lea la segunda declaración como "s es una referencia doble inicializada en d". El siguiente ejemplo hace uso de referencias en int y double:
#include <iostream>
using namespace std;
int main () {
// declare simple variables
int i;
double d;
// declare reference variables
int& r = i;
double& s = d;
i = 5;
cout << "Value of i : " << i << endl;
cout << "Value of i reference : " << r << endl;
d = 11.7;
cout << "Value of d : " << d << endl;
cout << "Value of d reference : " << s << endl;
return 0;
}
Cuando el código anterior se compila y se ejecuta, produce el siguiente resultado:
Value of i : 5
Value of i reference : 5
Value of d : 11.7
Value of d reference : 11.7
Las referencias se utilizan normalmente para listas de argumentos de funciones y valores de retorno de funciones. Por lo tanto, a continuación se muestran dos temas importantes relacionados con las referencias de C ++ que deberían ser claros para un programador de C ++:
No Señor | Concepto y descripción |
---|---|
1 | Referencias como parámetros C ++ admite el paso de referencias como parámetro de función de forma más segura que los parámetros. |
2 | Referencia como valor de retorno Puede devolver una referencia de una función de C ++ como cualquier otro tipo de datos. |