Odwołania (C++)
Odwołaniami mogą być zadeklarowane za pomocą następującej składni:
[storage-class-specifiers] [cv-qualifiers] type-specifiers
[ms-modifier] declarator [= expression];
Dopuszcza się wszelkie ważne; niewłaściwy deklarator określające odwołanie.Chyba że odwołanie jest odwołaniem do typu funkcji lub w tablicy, stosuje się następującą składnię uproszczone:
[storage-class-specifiers] [cv-qualifiers] type-specifiers &
[cv-qualifiers] identifier [= expression];
Odwołania są zadeklarowane za pomocą następującej sekwencji:
1.Specyfikatory deklaracji:
Specyfikator klasy magazynowania opcjonalne.
Opcjonalny const i/lub volatile kwalifikatorów.
Specyfikator typu: nazwy typu.
2.Niewłaściwy deklarator:
Opcjonalne Microsoft szczególnych modyfikatora.Aby uzyskać więcej informacji, zobacz Modyfikatorów specyficzne dla firmy Microsoft.
& operator.
Opcjonalny const i/lub volatile qualifers.
Identyfikator.
3.Opcjonalne inicjatora.
Bardziej złożonych form; niewłaściwy deklarator wskaźników do funkcji i tablic stosuje się także do odwołania do tablic i funkcji, zobacz wskaźniki i declarators.
Wiele declarators i inicjatory może pojawić się w rozdzielana przecinkami lista po specyfikatora pojedynczą deklarację.Na przykład:
int &i;
int &i, &j;
Odwołania, wskaźniki i obiekty mogą być zadeklarowane razem:
int &ref, *ptr, k;
Odwołanie przechowuje adres obiektu, ale zachowuje się syntaktycznie jak obiekt.
W programie następujące warto zauważyć, że nazwa obiektu, Todayi odwołanie do obiektu, TodayRef, mogą być używane w identyczny sposób w programy:
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: