Pourquoi "coute-t-il une fonction sans l'appeler (pas f() mais f;). Imprimer 1 toujours ?"
Dans ce code, le code essaie "d'appeler" une fonction nommée pr sans utiliser de parenthèses. Cependant, cela n’appelle pas réellement la fonction. Au lieu de cela, il passe le pointeur de fonction vers la fonction cout. Lorsque le pointeur de fonction est implicitement converti en valeur booléenne, il est évalué comme vrai. Puisque true équivaut à 1 en C , la sortie est toujours 1.
Pour clarifier, les lignes suivantes du code fourni n'appellent pas la fonction pr :
pr;
cout Pour véritablement appeler la fonction pr, vous devrez utiliser des parenthèses comme pr().
Ceci le comportement vient du fait que les pointeurs de fonction sont implicitement convertibles en bool. En C 11, il est possible de surcharger l'opérateur
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3