Sdílet prostřednictvím


Abstraktní C++ Declarators

Abstraktní declarator je declarator, ve kterém je identifikátor vynechán.(Související informace naleznete v tématu Názvy typu a Declarators) Zatímco neabstraktním declarators jsou použity v prohlášení, které objekty nebo funkce, odstranění mimo identifikátor ponechá pouze informace o typu.Proto mají abstraktní declarators změnu jako základní typ char zadat složitější typ jako ukazatel na znak nebo pole char.Jako takové jsou vždy v kombinaci s názvem základní typ a používá pouze pokud je typ ukazatele, matice nebo odkaz (včetně ukazatel na funkci vrácení základního typu).V této části jsou popsány abstraktní declarators odpovídající následujícím:

Abstraktní declarator je declarator, který prohlásí název – identifikátor je vynecháno.Příklad:

char * 

Určuje typ ukazatele zadejte char.Název typu se skládá z názvu základní typ char plus abstraktní declarator *.

Podobně je abstraktní declarator odkaz & operátor a typu pole určena pomocí závorek.Lze zadat libovolný typ jednoduše použitím syntaxe pro declarator a odebrání identifikátoru.

char &   // reference to char
char[5] // array of char

Je složitější použití abstraktní declarator, který deklaruje typ ukazatel na funkci, která má dva argumenty, obojí typu **char ***a vrátí hodnotu typu char *:

char * (*)( char *, char * )

V kombinaci s základní typ specifikátoru abstraktní declarators zcela deklarovat typ.Typ, který může být vyrobeno z abstraktní declarators názvy používané všude, kde typ je volána pro:

// Get the size of array of 10 pointers to type char.
size_t nSize = sizeof( char *[10] );
// cast fptr to pointer to function that takes two arguments, both of type
// pointer to char
 i = (char * (*)(char*, char*)) fptr; 

Typedef specifikátor mohou být použity k vyvarovat opakování náročný syntaxe abstraktní declarators.

Viz také

Referenční dokumentace

Declarators