Entendiendo las Referencias en C++: Conceptos Clave y Diferencias con Punteros
Una variable de referencia es un alias, es decir, otro nombre para una variable ya existente. Una vez que una referencia se inicializa con una variable, tanto el nombre de la variable como el nombre de la referencia pueden usarse para referirse a la variable.
Referencias vs Punteros
Las referencias a menudo se confunden con los punteros, pero tres diferencias principales entre referencias y punteros son:
No puedes tener referencias NULL. Siempre debes poder asumir que una referencia está conectada a una pieza legítima de almacenamiento.
Una vez que una referencia se inicializa a un objeto, no puede ser cambiada para referirse a otro objeto. Los punteros pueden apuntar a otro objeto en cualquier momento.
Una referencia debe ser inicializada cuando se crea. Los punteros pueden ser inicializados en cualquier momento.
Creando Referencias en C++
Piensa en el nombre de una variable como una etiqueta adjunta a la ubicación de la variable en memoria. Luego puedes pensar en una referencia como una segunda etiqueta adjunta a esa ubicación de memoria. Por lo tanto, puedes acceder al contenido de la variable a través del nombre original de la variable o de 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;
Lee el & en estas declaraciones como referencia. Así, lee la primera declaración como "r es una referencia entera inicializada a i" y la segunda declaración como "s es una referencia double inicializada a d". El siguiente ejemplo hace uso de referencias en int y double:
#include <iostream>
using namespace std;
int main() {
// declara variables simples
int i;
double d;
// declara variables de referencia
int& r = i;
double& s = d;
i = 5;
cout << "Valor de i: " << i << endl;
cout << "Valor de referencia de i: " << r << endl;
d = 11.7;
cout << "Valor de d: " << d << endl;
cout << "Valor de referencia de d: " << s << endl;
return 0;
}
Cuando el código anterior se compila y ejecuta, produce el siguiente resultado:
Valor de i: 5
Valor de referencia de i: 5
Valor de d: 11.7
Valor de referencia de d: 11.7
Las referencias se usan usualmente para listas de argumentos de funciones y valores de retorno de funciones. Así que los siguientes son dos temas importantes relacionados con las referencias de C++ que deben estar claros para un programador de C++:
| Nº | Concepto y Descripción |
|---|---|
| 1 | Referencias como Parámetros C++ soporta pasar referencias como parámetros de función de manera más segura que parámetros. |
| 2 | Referencia como Valor de Retorno Puedes retornar una referencia desde una función C++ como cualquier otro tipo de dato. |
Lenguaje C
- Entendiendo los Tipos de Datos en C++: Fundamentos, Modificadores y Mejores Prácticas
- Dominando los Operadores en C++: Guía Completa con Ejemplos Prácticos
- Comentarios en C++: Mejores Prácticas para Código Legible y Mantenible
- Entendiendo los Constructores en C++: Por Defecto, Parametrizados y de Copia Explicados
- Dominando las plantillas de clase en C++: guía práctica
- Lenguaje de Programación C++: Visión General y Características Clave
- Constantes y Literales en C++: Tipos, Sintaxis y Mejores Prácticas
- Guía Completa de Operadores en C++: Tipos, Uso y Mejores Prácticas
- Dominando los Tipos Numéricos en C++: Guía Práctica
- Entendiendo las Referencias en C++: Conceptos Clave y Diferencias con Punteros
- Dominando Plantillas en C++: Guía de Programación Genérica