Sdílet prostřednictvím


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:

Viz také

Referenční dokumentace

Inicializace odkazů