Llamada a la función C ++ por referencia
los call by referenceEl método de pasar argumentos a una función copia la referencia de un argumento en el parámetro formal. Dentro de la función, la referencia se usa para acceder al argumento real usado en la llamada. Esto significa que los cambios realizados en el parámetro afectan el argumento pasado.
Para pasar el valor por referencia, la referencia de argumento se pasa a las funciones como cualquier otro valor. Por lo tanto, debe declarar los parámetros de la función como tipos de referencia como en la siguiente funciónswap(), que intercambia los valores de las dos variables enteras apuntadas por sus argumentos.
// function definition to swap the values.
void swap(int &x, int &y) {
int temp;
temp = x; /* save the value at address x */
x = y; /* put y into x */
y = temp; /* put x into y */
return;
}
Por ahora, llamemos a la función swap() pasando valores por referencia como en el siguiente ejemplo:
#include <iostream>
using namespace std;
// function declaration
void swap(int &x, int &y);
int main () {
// local variable declaration:
int a = 100;
int b = 200;
cout << "Before swap, value of a :" << a << endl;
cout << "Before swap, value of b :" << b << endl;
/* calling a function to swap the values using variable reference.*/
swap(a, b);
cout << "After swap, value of a :" << a << endl;
cout << "After swap, value of b :" << b << endl;
return 0;
}
Cuando el código anterior se junta en un archivo, se compila y se ejecuta, produce el siguiente resultado:
Before swap, value of a :100
Before swap, value of b :200
After swap, value of a :200
After swap, value of b :100