Referências C ++

Uma variável de referência é um alias, ou seja, outro nome para uma variável já existente. Depois que uma referência é inicializada com uma variável, o nome da variável ou o nome da referência pode ser usado para se referir à variável.

Referências vs ponteiros

As referências são frequentemente confundidas com ponteiros, mas as três principais diferenças entre referências e ponteiros são -

  • Você não pode ter referências NULL. Você sempre deve ser capaz de assumir que uma referência está conectada a um armazenamento legítimo.

  • Depois que uma referência é inicializada para um objeto, ela não pode ser alterada para se referir a outro objeto. Os ponteiros podem ser apontados para outro objeto a qualquer momento.

  • Uma referência deve ser inicializada ao ser criada. Os ponteiros podem ser inicializados a qualquer momento.

Criação de referências em C ++

Pense no nome de uma variável como um rótulo anexado à localização da variável na memória. Você pode então pensar em uma referência como um segundo rótulo anexado a esse local da memória. Portanto, você pode acessar o conteúdo da variável por meio do nome da variável original ou da referência. Por exemplo, suponha que temos o seguinte exemplo -

int i = 17;

Podemos declarar variáveis ​​de referência para i da seguinte maneira.

int& r = i;

Leia o & nestas declarações como reference. Assim, leia a primeira declaração como "r é uma referência inteira inicializada com i" e leia a segunda declaração como "s é uma referência dupla inicializada com d.". O exemplo a seguir faz uso de referências em int e double -

#include <iostream>
 
using namespace std;
 
int main () {
   // declare simple variables
   int    i;
   double d;
 
   // declare reference variables
   int&    r = i;
   double& s = d;
   
   i = 5;
   cout << "Value of i : " << i << endl;
   cout << "Value of i reference : " << r  << endl;
 
   d = 11.7;
   cout << "Value of d : " << d << endl;
   cout << "Value of d reference : " << s  << endl;
   
   return 0;
}

Quando o código acima é compilado e executado, ele produz o seguinte resultado -

Value of i : 5
Value of i reference : 5
Value of d : 11.7
Value of d reference : 11.7

As referências são geralmente usadas para listas de argumentos de funções e valores de retorno de funções. Então, a seguir estão dois assuntos importantes relacionados às referências C ++ que devem ser claros para um programador C ++ -

Sr. Não Conceito e descrição
1 Referências como parâmetros

C ++ suporta a passagem de referências como parâmetro de função com mais segurança do que parâmetros.

2 Referência como valor de retorno

Você pode retornar a referência de uma função C ++ como qualquer outro tipo de dados.