Udostępnij za pośrednictwem


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.

Zobacz też

Informacje

Declarators