オーバーロードされた関数のアドレス
引数のない関数名を使用するとその関数のアドレスを返します。次に例を示します。
int Func( int i, int j );
int Func( long l );
...
int (*pFunc) ( int, int ) = Func;
前の例ではFunc の最初のバージョンが選択されアドレスは pFunc にコピーします。
コンパイラは引数リストで関数をすばやく検索が選択した関数のバージョンを対象とするかを判定します。オーバーロードされた関数の宣言の引数は次のいずれかと一致します :
オブジェクトの初期化 (前の例のように)
代入ステートメントの左側
関数の仮引数
ユーザー定義演算子の仮引数
関数の戻り値の型
厳密な一致が見つからない場合は関数のアドレスを受け取るあいまいであるとエラーが生成されます。式。
オーバーロードされたメンバーのアドレスを取ることが機能するときに非メンバー関数がFunc 前の例で使用したときに同じ規則が適用されることに注意してください。