Chiamata di funzione C ++ per riferimento
Il call by referenceIl metodo per passare argomenti a una funzione copia il riferimento di un argomento nel parametro formale. All'interno della funzione, il riferimento viene utilizzato per accedere all'argomento effettivo utilizzato nella chiamata. Ciò significa che le modifiche apportate al parametro influiscono sull'argomento passato.
Per passare il valore per riferimento, il riferimento all'argomento viene passato alle funzioni proprio come qualsiasi altro valore. Quindi di conseguenza è necessario dichiarare i parametri della funzione come tipi di riferimento come nella funzione seguenteswap(), che scambia i valori delle due variabili intere puntate dai suoi argomenti.
// 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;
}
Per ora, chiamiamo la funzione swap() passando i valori per riferimento come nell'esempio seguente:
#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;
}
Quando il codice sopra viene messo insieme in un file, compilato ed eseguito, produce il seguente risultato:
Before swap, value of a :100
Before swap, value of b :200
After swap, value of a :200
After swap, value of b :100