C + + 抽象宣告子
抽象的宣告是的宣告,則識別項。 (如需相關資訊,請參閱型別名稱 和 多個宣告)非抽象的宣告子所用的物件或函式宣告中,移除識別項會保留型別資訊。 因此,抽象的多個宣告會達到的效果如修改基底型別char來指定更複雜的型別,例如字元或字元陣列的指標。 因此,它們永遠是搭配基底型別名稱,而且只用在指標、 陣列或參考型別都會呼叫 (包括函式傳回該基底型別指標)。 本章節將討論抽象的多個宣告對應到下列:
抽象的宣告會宣告子未宣告的名稱,識別項遺漏了。 例如:
char *
指定型別指標,以鍵入char。 型別名稱所組成的基底型別名稱char再加上抽象的宣告子 *。
同樣地,抽象的宣告子參照是 & 使用方括號,指定運算子和陣列型別。 可以指定任何型別,就是直接套用的宣告子的語法,並移除識別項。
char & // reference to char
char[5] // array of char
下面是使用變得更加複雜的型別指標的函式會接受兩個引數,這兩個型別宣告抽象 declarator char *,並傳回型別 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 規範可能會用來避免重複麻煩的抽象的多個宣告語法。