calculer une fonction sans appeler : percer le mystère
Imaginez ceci : vous codez et au lieu d'invoquer une fonction avec des parenthèses, vous imprimez simplement son nom. Étonnamment, le résultat est toujours 1. Cette approche non conventionnelle vous laisse perplexe, tant sur les 1 que sur l'absence du pointeur de fonction attendu.
Plongeons dans les subtilités de votre code :
#include
using namespace std;
void pr()
{
cout Contrairement à votre intention, vous n'appelez pas réellement la fonction pr dans les instructions cout
Pour améliorer votre compréhension, pensez à utiliser cout
Alors que C 11 offre une solution élégante :
template
std::ostream & operatorCette surcharge vous permet d'imprimer des pointeurs de fonction d'arité arbitraire, affichant des informations comme l'adresse du pointeur de fonction et le nombre de ses arguments.
Donc, voilà : les 1 énigmatiques sont pas une simple coïncidence mais le résultat d'une conversion de type implicite. Comprendre ce comportement est crucial pour éviter des résultats inattendus et créer un code plus robuste.
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