Fonctions d'impression dans cpp [dupliquer]

Oct 25 2020

Pourquoi chaque fois que j'imprime une fonction dans cpp, il imprime 1. ie

#include <iostream>
using namespace std;
void f1(){
   cout<<"called function f";
}
int f2(){
   cout<<"called f2";
   return 1;
}
int main(){
   cout << f2 <<endl; // prints 1
   cout << f1 <<endl; // still prints 1
}

Je me demande simplement pourquoi il imprime 1.

Merci de votre aide

Réponses

1 MikeCAT Oct 25 2020 at 20:20

Il semble qu'il juge si les fonctions (converties en pointeurs vers des fonctions) ne sont pas nulles, retournant trueet imprimant truecomme 1. Cela peut être confirmé en ajoutant cout << std::boolalpha;et en voyant la sortie est modifiée en true.

#include <iostream>
using namespace std;
void f1(){
   cout<<"called function f";
}
int f2(){
   cout<<"called f2";
   return 1;
}
int main(){
   cout << std::boolalpha;
   cout << f2 <<endl; // prints true
   cout << f1 <<endl; // also prints true
}