- Entrou
- Set 23, 2006
- Mensagens
- 1,690
- Gostos Recebidos
- 0
Uma referência é a "morada" de uma certa variável na memória. Quando fazemos int i; estamos a criar uma variável que ficará alojada algures. A sua referência é o seu endereço na memória e define-se com o caractér '&' antes do seu nome.
Pelo que se vê, uma referência é uma variável com outro nome para o mesmo endereço. É como se i e i_ref fossem a mesma coisa, e na prática até são. Então qual a utilidade das referências? As referências tomam especial importância no tratamento de funções, pois se quando passávamos um argumento por valor, havia uma cópia deste, agora podemos passar a sua referência.#include <iostream>
using namespace std;
// demonstração do uso de referências
int main()
{
int i;
int &i_ref = i; // i_ref irá conter o endereço na memória da variável i
// a partir de agora pode-se afectar o conteúdo de i com i_ref
cout<< i <<" = "<< i_ref <<endl;
cout<<"Incrementar... o i"<<endl;
++i;
cout<< i <<" = "<< i_ref <<endl;
cout<<"Incrementar... o i_ref"<<endl;
++i_ref;
cout<< i <<" = "<< i_ref <<endl;
cin.get();
return 0;
}
Ao passar os parâmetros, é passava a sua referência, pelo que é como se estivéssemos a trabalhar com as próprias variáveis num1 e num2;#include <iostream>
using namespace std;
// troca o conteúdo de duas variáveis inteiras
void swap( int &a, int &b )
{
int temp = a; // para não se perder o valor de a
a = b;
b = temp;
}
int main()
{
int num1 = 1;
int num2 = 2;
cout<<"Numero 1 = "<< num1 <<" - Numero 2 = "<< num2 << endl;
cout<<"Swap..."<<endl;
swap(num1,num2);
cout<<"Numero 1 = "<< num1 <<" - Numero 2 = "<< num2 << endl;
cin.get();
return 0;
}