Partager via


Adresse de fonctions surchargées

L'utilisation d'un nom de fonction sans arguments retourne l'adresse de cette fonction.Par exemple :

int Func( int i, int j );
int Func( long l );

...

int (*pFunc) ( int, int ) = Func;

dans l'exemple précédent, la première version d' Func est sélectionnée, et son adresse est copiée dans pFunc.

Le compilateur détermine quelle version de la fonction à sélectionner en recherchant une fonction avec une liste d'arguments qui exactement correspond à celle de la cible.Les arguments dans les déclarations de fonctions surchargées sont trouvés par rapport à un des éléments suivants :

  • Un objet initialisé (comme indiqué dans l'exemple précédent)

  • le côté gauche d'une instruction d'assignation

  • un argument formel à une fonction

  • un argument formel à un opérateur défini par l'utilisateur

  • Un type de retour de la fonction

Si aucun correspondance exacte n'est trouvée, l'expression qui prend l'adresse de la fonction est ambiguë et une erreur est générée.

Notez que bien qu'une fonction non - membre, Func, est utilisé dans l'exemple précédent, les mêmes règles sont appliquées en prenant l'adresse des fonctions membres surchargées.

Voir aussi

Référence

Surcharge