Odwołania (C++)
Odwołania mogą zostać zadeklarowane za pomocą następującej składni:
[storage-class-specifiers] [cv-qualifiers] type-specifiers
[ms-modifier] declarator [= expression];
Może zostać użyty dowolny prawidłowy deklarator określający odwołanie.Jeśli odwołanie jest odwołaniem do funkcji lub tablicy typu, stosuje się następującą składnię uproszczoną:
[storage-class-specifiers] [cv-qualifiers] type-specifiers &
[cv-qualifiers] identifier [= expression];
Odwołania są zadeklarowane za pomocą następującej sekwencji:
1.Specyfikatory deklaracji
Opcjonalna specyfikator urządzenia klasy magazynowania.
Opcjonalny const i/lub kwalifikatory volatile.
Specyfikator typu: nazwa typu.
2.Specyfikator:
Opcjonalny modyfikator właściwy dla Microsoft.Aby uzyskać więcej informacji, zobacz Modyfikatory specyficzne dla firmy Microsoft.
Operator &.
Opcjonalny const i/lub kwalifikatory volatile.
Identyfikator.
3.Opcjonalny inicjator.
Bardziej złożone formy deklaratorów dla wskaźników do tablic i funkcji stosuje się także do odwołania do tablic i funkcji, zobacz wskaźniki i deklaratory.
Wiele deklaratorów i inicjatorów może pojawić się w rozdzielanej przecinkami liście po specyfikatorze pojedynczej deklaracji.Na przykład:
int &i;
int &i, &j;
Odwołania, wskaźniki i obiekty mogą być zadeklarowane ze sobą:
int &ref, *ptr, k;
Odwołanie przechowuje adres obiektu, ale zachowuje się syntaktycznie jak obiekt.
W następującym programie, należy zauważyć, że nazwa obiektu, Today, a odwołanie do obiektu, TodayRef, mogą być używane w identyczny sposób w programach:
Przykład
// 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);
}
Komentarz
Tematy w tej sekcji: