名前
identifier
qualified-name
operator-function-name
conversion-function-name
~ class-name
template-identifier
template name
qualified-class-name :: template name
解説
宣言された 識別子は 名前 です。修飾名はスコープ解決演算子で構成されます。 修飾名を " " を参照してください。
演算子関数の名前は フォームで宣言される名前です。
演算子 の 演算子名 **(**argument1argument2);[入力]
演算子関数名 の宣言に関する詳細についてはオーバーロードされた演算子 を参照してください。
変換関数の名前は フォームで宣言される名前です。
operator の 型名 ()
[!メモ]
変換関数を宣言するときに 型名 の代わりに char * などの派生した型名を指定できます。
ユーザー定義型との間で変換関数を提供する変換。ユーザー指定の変換に関する詳細については変換関数 を参照してください。
~ の クラス名 として宣言された名前はクラス型のオブジェクトのデストラクター 「」として解釈されます。デストラクターはオブジェクトの有効期間の最後にクリーンアップ操作を実行します。デストラクターの詳細についてはデストラクター を参照してください。
またテンプレートの種類とテンプレート関数に使用する名前の複数の形式があります。
テンプレートの識別子を囲むかぎカッコに続くテンプレート クラス名をテンプレートの作成方法によって宣言された型と式を含めることができるテンプレート引数リストが含まれています。 テンプレートの識別子 の例を次に示します。:
A<int> // class A takes a type as a template argument
A<int, char> // class A takes two types as template arguments
A<4> // class A takes an int as a template argument
A<> // class A is a template with a default argument
テンプレート関数の完全修飾名はテンプレートのキーワードが含まれる場合があります。テンプレートのキーワードは名前に - > のスコープ解決演算子演算子演算子または 。 の修飾名の先頭に付いています使用できません。ここでは関数の名前です :
::template f<int> // f is a global template function
A::template g<100> //g is a template member function of class A
同様にクラス テンプレートの名前はテンプレートでキーワードを使用してスコープまたは修飾名である場合は使用できません。次に型の名前です :
::template A<int> // equivalent to A<int>
Outer::template Inner<int> // equivalent to Outer::Inner<int>
テンプレートの詳細についてはテンプレート を参照してください。