Question

Les pointeurs présentent des problèmes particuliers pour la résolution des surcharges.

Dites par exemple,

void f(int* x) { ... }
void f(char* x) { ...}
int main()
{
    f(0);
}

Quel est le problème avec l'appel de f (0)? Comment puis-je résoudre l'appel de fonction pour f (0)?

Était-ce utile?

La solution

f ((int *) 0) ou f ((char *) 0)

Mais si vous vous trouvez en train de faire cela, je jetterais un autre coup d'oeil à votre conception.

Autres conseils

Diffusez-le ou ne l'utilisez pas du tout:

f((int*)0);

Ce qui ne va pas avec l'appel de f (0), c'est que la résolution est ambiguë. Vos deux fonctions surchargées prennent un pointeur qui, dans ce cas, ne peut être résolu que par cast.

f((int*)0)

En fonction de ce que vous essayez de faire ici, d'autres options ne sont pas ambiguës.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top