Odkazy (C++)
Odkazy mohou být deklarovány pomocí následující syntaxe:
[storage-class-specifiers] [cv-qualifiers] type-specifiers
[ms-modifier] declarator [= expression];
Může být použit libovolný platný deklarátor určující odkaz.Pokud je odkaz odkazem na funkci nebo typ pole, platí následující zjednodušená syntaxe:
[storage-class-specifiers] [cv-qualifiers] type-specifiers &
[cv-qualifiers] identifier [= expression];
Odkazy jsou deklarovány následující sekvencí:
1.Specifikátory deklarace:
Volitelný specifikátor paměťové třídy.
Volitelné kvalifikátory const nebo volatile.
Typ specifikátoru: název typu.
2.Deklarátor:
Volitelný specifický modifikátor Microsoft.Další informace naleznete v tématu Modifikátory specifické pro produkty společnosti Microsoft.
Operátor &.
Volitelné kvalifikátory const nebo volatile.
Identifikátor.
3.Volitelný inicializátor.
Složitější tvary deklarátorů odkazů pro ukazatele na pole a funkce se vztahují také na odkazy na pole a funkce, další informace naleznete v tématech ukazatelé a deklarátory.
Více deklarátorů a inicializátorů může být v seznamu odděleném čárkami, který následuje jedinou deklaraci specifikátoru.Příklad:
int &i;
int &i, &j;
Odkazy, ukazatele a objekty lze deklarovat společně:
int &ref, *ptr, k;
Odkaz uchovává adresu objektu, ale syntakticky se chová jako objekt.
V následujícím programu, si všimněte, že název objektu Today a odkaz na tento objekt TodayRef lze v programech použít stejně:
Příklad
// 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);
}
Komentář
Témata v tomto oddílu: