Referencias (C++)
Las referencias se pueden declarar con la sintaxis siguiente:
[storage-class-specifiers] [cv-qualifiers] type-specifiers
[ms-modifier] declarator [= expression];
Se puede usar cualquier declarador válido que especifique una referencia. A menos que la referencia sea una referencia a un tipo de función o matriz, se aplica la siguiente sintaxis simplificada:
[storage-class-specifiers] [cv-qualifiers] type-specifiers &
[cv-qualifiers] identifier [= expression];
Las referencias se declaran mediante la siguiente secuencia:
1. Los especificadores de la declaración:
Un especificador de clase de almacenamiento opcional.
Calificadores const y/o volatile opcionales.
El especificador de tipo: el nombre de un tipo.
2. El declarador:
Un modificador opcional específico de Microsoft. Para obtener más información, vea Modificadores específicos de Microsoft.
El operador &.
Calificadores const y/o volatile opcionales.
El identificador.
3. Un inicializador opcional.
Las formas de declarador más complejas para punteros a matrices y funciones también se aplican a las referencias a matrices y funciones. Vea punteros y declaradores.
Varios declaradores e inicializadores pueden aparecer en una lista separada por comas detrás de un único especificador de declaración. Por ejemplo:
int &i;
int &i, &j;
Las referencias, punteros y objetos se pueden declarar juntos:
int &ref, *ptr, k;
Una referencia contiene la dirección de un objeto, pero se comporta sintácticamente como un objeto.
Observe que, en el siguiente programa, el nombre del objeto Today y la referencia al objeto, TodayRef, se pueden usar de la misma forma:
Ejemplo
// 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
Temas de esta sección: