Dichiaratori estrai C++

Un dichiaratore astratto è un dichiaratore in cui l'identificatore viene omesso.(Per informazioni correlate, vedere Nomi dei tipi e dichiaratoriMentre i dichiaratori non astratti vengono utilizzati nella dichiarazione di oggetti o funzioni, rimuovere dall'identificatore di mantenere solo le informazioni sul tipo.Pertanto, i dichiaratori astratti hanno effetto di modificare un tipo di base come char per specificare più tipi complessi come il puntatore per char o matrice di caratteri.Di conseguenza, vengono utilizzati sempre combinazione con un nome di tipo di base e solo vengono utilizzati quando un puntatore, una matrice o un tipo di riferimento viene chiamato per (puntatore inclusi funzioni restituendo tale tipo di base).I dichiaratori astratti che corrispondono a quello riportato di seguito vengono illustrati in questa sezione:

Un dichiaratore astratto è un dichiaratore che non dichiara un nome - identificatore viene omesso.Di seguito è riportato un esempio:

char * 

specifica il tipo puntatore al tipo char.Il nome del tipo è costituito dal nome del tipo di base char più il dichiaratore astratto *.

Analogamente, il dichiaratore astratto per un riferimento viene & operatore e un tipo di matrice viene specificato utilizzando delle parentesi.Qualsiasi tipo può essere specificato solo applicando la sintassi per la dichiarazione e rimozione l'identificatore.

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

L'esempio seguente è un utilizzo più complesso di un dichiaratore astratto che dichiara il tipo puntatore a una funzione che accetta due argomenti, entrambi tipo **char ***tipo e viene restituito char *:

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

In combinazione con l'identificatore del tipo di base, i dichiaratori astratti completamente dichiara un tipo.I nomi dei tipi costruiti i dichiaratori astratti possono essere utilizzati ovunque un tipo viene chiamato per:

// 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; 

identificatore di typedef può essere utilizzato per evitare di ripetere la sintassi più complessa dei dichiaratori astratti.

Vedere anche

Riferimenti

Dichiaratori