次の方法で共有


C++ 抽象宣言子

抽象宣言子は、識別子が省略される宣言子です。 (関連情報については、「型名宣言子」を参照してください)。非抽象宣言子はオブジェクトまたは関数の宣言で使用されますが、識別子を取り除くと型情報のみが残ります。 したがって抽象宣言子は、文字、文字配列へのポインターなど、より複雑な型を指定するために、char などの基本型を変更する効果があります。 そのため、基本型の名前と常に組み合わせて、(該当する基本型を返す関数へのポインターを含めて) ポインター、配列、または参照型に対する呼び出し時にのみ使用します。 このセクションでは、以下に対応する抽象宣言子について説明します。

抽象宣言子は、名前を宣言しない宣言子です。識別子は除外されます。 次に例を示します。

char * 

char 型へのポインター型を指定します。 型の名前は、基本型名 char と抽象宣言子 * から構成されます。

同様に、参照の抽象宣言子は & 演算子であり、配列型は角かっこで指定します。 どの型についても、宣言子の構文をそのまま適用し、識別子を取り除くことにより指定できます。

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

以下に、共に char * 型である 2 つの引数を取り、型 char * を返す関数への型ポインターを宣言する抽象宣言子のより複雑な使用方法を示します。

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

抽象宣言子は、基本型の指定子と組み合わせて、完全な型を宣言します。 抽象宣言子から構築される型の名前は、型が呼び出される任意の場所で使用できます。

// 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 指定子を使用できます。

参照

関連項目

宣言子