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: