Compartilhar via


Declarador de referência lvalue: &

Contém o endereço de um objeto, mas se comporta de sintaticamente como um objeto.

type-id & cast-expression

Comentários

Você pode pensar em uma referência de lvalue como outro nome para um objeto.Uma declaração de referência de lvalue consiste em uma lista opcional de especificadores, seguido por um Declarador de referência.Uma referência deve ser inicializada e não pode ser alterada.

Qualquer objeto cujo endereço pode ser convertido em um tipo determinado de ponteiro também pode ser convertido para o tipo de referência semelhante.Por exemplo, qualquer objeto cujo endereço pode ser convertido no tipo char * também pode ser convertido no tipo char &.

Não confunda as declarações de referência com uso da operador adress-of.Quando o & identificador é precedido por um tipo, como int ou char, identificador é declarada como uma referência ao tipo.Quando & identificador não é precedido por um tipo, é o uso do operador adress-of.

Exemplo

O exemplo a seguir demonstra o Declarador de referência, declarando um Person objeto e uma referência a esse objeto.Porque rFriend é uma referência a myFriend, a atualização de qualquer variável altera o mesmo objeto.

// reference_declarator.cpp
// compile with: /EHsc
// Demonstrates the reference declarator.
#include <iostream>
using namespace std;

struct Person
{
    char* Name;
    short Age;
};

int main()
{
   // Declare a Person object.
   Person myFriend;

   // Declare a reference to the Person object.
   Person& rFriend = myFriend;

   // Set the fields of the Person object.
   // Updating either variable changes the same object.
   myFriend.Name = "Bill";
   rFriend.Age = 40;

   // Print the fields of the Person object to the console.
   cout << rFriend.Name << " is " << myFriend.Age << endl;
}
  

Consulte também

Referência

Referências (C++)

Argumentos de tipo de referência de função

Tipo de referência função retorna

Referências a ponteiros