Partilhar via


Referências (C++)

As referências podem ser declaradas usando a seguinte sintaxe:

[storage-class-specifiers] [cv-qualifiers] type-specifiers 
[ms-modifier] declarator [= expression];

Qualquer declarador válido que especifique uma referência pode ser usado. A menos que se trate de uma referência para um tipo de matriz ou função, a seguinte sintaxe simplificada se aplica:

[storage-class-specifiers] [cv-qualifiers] type-specifiers & 
[cv-qualifiers] identifier [= expression];

As referências são declaradas usando a seguinte sequência:

1. Os especificadores da declaração:

  • Um especificador de classe de armazenamento opcional.

  • Qualificadores opcionais const e/ou volatile.

  • O especificador de tipo: o nome de um tipo.

  • 2. O declarador:

  • Um modificador opcional específico da Microsoft. Para obter mais informações, consulte Modificadores específicos da Microsoft.

  • O operador &.

  • Qualificadores opcionais const e/ou volatile.

  • O identificador.

3. Um inicializador opcional.

Os formatos mais complexos de declaradores associados a ponteiros para matrizes e funções também se aplicam às referências a matrizes e funções; consulte os tópicos sobre ponteiros e declaradores.

Vários declaradores e inicializadores podem aparecer em uma lista separada por vírgulas após um único especificador de declaração. Por exemplo:

int &i; 
int &i, &j; 

As referências, os ponteiros e os objetos podem ser declarados juntos:

int &ref, *ptr, k; 

Uma referência contém o endereço de um objeto, mas se comporta sintaticamente como um objeto.

No programa a seguir, observe que o nome do objeto, Today, e a referência ao objeto, TodayRef, podem ser usados de forma idêntica em programas:

Exemplo

// references.cpp
#include <stdio.h>
struct S {
   short i;
};

int main() {
   S  s;   // Declare the object.
   S& SRef = s;   // Declare the reference.
   s.i = 3;

   printf_s("%d\n", s.i);
   printf_s("%d\n", SRef.i);

   SRef.i = 4;
   printf_s("%d\n", s.i);
   printf_s("%d\n", SRef.i);
}
  

Comment

Tópicos desta seção:

Consulte também

Referência

Inicializando referências