A atribuição inicial é obrigatória durante a declaração de uma variável do tipo reference,
como mostrado nos exemplos abaixo:
Sintaxe
tipo_dado &ref = variavel;
Exemplo 2
#include <iostream>
using namespace std;
int main()
{
int a;
int &ref = a;
}
Saída
-
O acesso ao valor de uma variável referenciada por uma reference/referência,
utilizamos o seu próprio nome, sem uso do operador (&), como pode ser visto abaixo:
Sintaxe: alteração
variavel_referencia = valor;
Sintaxe: acesso
variavel_referencia;
Exemplo 3
#include <iostream>
using namespace std;
int main()
{
int a; //= 0
int &ref = a;
ref = 10;// acesso indireto
cout << a << endl;
cout << ref;
}
Saída
10
Uma vez que uma variável do tipo reference foi atribuída a uma variável, não pode mais ser atribuída
novamente. Uma reference pode ser "vista" como uma constante(const).
Exemplo 4
#include <iostream>
using namespace std;
int main()
{
int a;
int &ref = a;
int b;
&ref = b; //Irá gerar erro
}
Saída
main.cpp: In function ‘int main()’:
main.cpp:10:5: error: lvalue required as left operand of assignment
10 | &ref = b;
As operações aritméticas de incremento e decremento são aplicadas ao valor da variável a qual uma
reference está atribuída. Outras operações aritméticas não são aceitas.
Exemplo 5
#include <iostream>
using namespace std;
int main()
{
int a = 99;
int &ref = a;
cout << a << endl;
ref++; //incrementando variável a
cout << ref << endl; //acessando valor de a
}
Saída
99
100