C++ || Funciones: Paso de Parámetros por Referencia: Definición, Uso y Ejemplos

Cual es el uso del paso por referencia


El paso de parámetros por referencia consiste en, no enviarle directamente un valor a la función, sino enviarle la dirección de memoria donde se encuentra almacenado dicho valor. 

Para que un parámetro sea por referencia, debemos modificar los tipos de datos de los parámetros en los “prototipos de función” y en “la definición de la función”, y esto es de la siguiente manera: 
void numeros(int& entero1, float& flotante2, double& doble3);

Usamos un “ampersand” al final del tipo de dato para que su variable se convierta en un parámetro por referencia donde se usará su dirección de memoria para identificar su valor


¿Qué tiene de especial la función Void? Entra a este Artículo:

Pongamos como ejemplo una función que intercambie los valores de dos números para entender esto mejor:

#include <iostream>
using namespace std;

void nuevovalor(int&, int&);

int main(){
	int num1 = 1, num2 = 99;
	
	cout<<"El primer numero es: "<<num1<<endl;
	cout<<"El segundo numero es: "<<num2<<endl;
	
	nuevovalor(num1, num2);
	
	cout<<"\nEl primer numero ahora es: "<<num1<<endl;
	cout<<"El segundo numero ahora es: "<<num2<<endl;
	
	return 0;
}

void nuevovalor(int& num1, int& num2){
	int aux = 0;
	
	aux = num1;
	num1 = num2;
	num2 = aux;
	
}

A simple vista podemos pensar que se ve como una función normal, nada característico, pero si vemos más a detalle nuestro código podemos ver como pudimos modificar dos valores y enviarlos a la  función principal de una función de tipo void, algo que una función normal no podría ser capaz. 

Esto pasa ya que, como se dijo, el paso de parámetros por referencia envía la dirección de memoria donde se encuentra almacenado un valor; esto quiere decir que el programa ya sabe dónde están ubicado los valores, y que cuando sean modificados por una función se reflejará en la función principal.


Un ejemplo útil del paso de parámetros por referencia es cuando queremos devolver varios valores a la función principal, ya que como sabemos, una función de tipo entero, flotante o double solo pueden devolver un solo valor.

Aunque concretamente la función no está retornando ningún valor realmente, sino que está actualizando el registro de memoria de la variable que se había declarado antes. Para devolver realmente valores múltiples en C++ (con return) se deben emplear arreglos o estructuras.


Tal vez te interesen estas entradas