Declarators streszczenie C++
Abstrakcyjne; niewłaściwy deklarator jest; niewłaściwy deklarator, w którym zostanie pominięty identyfikator.(Aby uzyskać pokrewne informacje, zobacz Nazwy typu i Declarators) Chociaż nieabstrakcyjna declarators są używane w deklaracji obiektów lub funkcji, oddzielania out identyfikator pozostawia tylko informacje o typie.W ten sposób, declarators abstrakcyjna mają wpływ takich jak modyfikowanie typu podstawowego char do określenia typu bardziej złożonych, takich jak wskaźnik char lub tablicy char.Jako takie są one zawsze używane w połączeniu z nazwą typu podstawowego i używane tylko, gdy wywoływana jest typ wskaźnika, tablica lub odwołanie do (w tym wskaźnik do funkcji przekazujących dane tego typu podstawowego).Abstrakcyjna declarators odpowiadające następujące są omówione w tej sekcji:
Abstrakcyjne; niewłaściwy deklarator jest; niewłaściwy deklarator, że nie deklaruje nazwę — identyfikator jest opuszczony.Na przykład,
char *
Określa typ wskaźnik wpisz char.Nazwa typu składa się z nazwy typu podstawowego char plus abstrakcyjne; niewłaściwy deklarator *.
Podobnie jest abstrakcyjna; niewłaściwy deklarator odwołanie & operator i typem tablicy jest określona przy użyciu klamer.Po prostu stosowanie składni dla; niewłaściwy deklarator i usuwając identyfikator można określić dowolnego typu.
char & // reference to char
char[5] // array of char
Oto bardziej skomplikowane wykorzystanie abstrakcyjne; niewłaściwy deklarator który deklaruje typu wskaźnik do funkcji, która ma dwa argumenty, oba typu **char ***i zwraca wartość typu char *:
char * (*)( char *, char * )
W połączeniu z specyfikatora typu podstawowego declarators abstrakcyjna całkowicie zadeklarować typ.Typu nazwy, wykonane z abstract declarators mogą być stosowane wszędzie, wywołana dla typu:
// 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 specyfikatora można by uniknąć powtarzających się uciążliwe składni abstrakcyjnej declarators.