Fontion pointer

Fermé
tomjoss Messages postés 5 Date d'inscription dimanche 29 juin 2014 Statut Membre Dernière intervention 6 juillet 2014 - Modifié par baladur13 le 4/07/2014 à 21:36
sambia39 Messages postés 610 Date d'inscription vendredi 31 juillet 2009 Statut Membre Dernière intervention 9 février 2023 - 4 juil. 2014 à 14:14
Bonjour,


suis encore débutant en programmation c++. j ai declare les fonctions comme suit:

source1.h
 
space{ 
typedef struct_name1 (*info_f_t) (); 
extern "C" struct_name1 info(); 
typedef void (*f_t) (ListPerson* list); 
} 

source2.h
 
extern "C" void information(); 
extern "C" struct_name2 eingabe(); 

source1_source2.cc

ici j ai implemente la fonction info(),eingabe() et information(). dans la fonction void information() j ai appelé la fonction info() et dans la fonction info() j ai appelle la fonction eingabe(). la fonction info() est appelle par son pointer typedef info_struct (*info_f_t) ();
dans la fonction information():j ai aussi appele les autres fonctions de mon programme avec le pointer:
typedef void (*f_t) (ListPerson* list); defini dans source1.h.
comme ceci:
 
void information(){ 
response= (*info_f_t) (); 
const char* NAME = response.info->name; 
std::string strr( NAME); 
typedef std::map<std::string, f_t> mapFunction; 
mapFunction maping; 
maping[NAME]=&founctionName; 
(*NAME])(list); 
} 

*******************************************
 
struct_name2 eingabe(){ 
cout<<"choisissez une fonction"; 
return fName; 
} 

************************************************+
 
space::struct_name1 space::info(){ 
struct_name2 myinfo= eingabe(); 
struct_name1 mInfo = {1 , myinfo}; 
return mInfo; 
} 

dans main.cc
j ai la boucle:
 
while (rs!=true){ 
information(); 
} 

la boucle s execute bien au premier appel.
au deuxième appel de la fonction information() appelle la fonction info() mais les outputs qui sont ds eingabe() ne s affiche plus et la linge ci: (*NAME])(list); est directementement execute avec la meme fonction que le programme venait d exécute. je ne sais pas si c est un problème de lainage.
merci pour tout aide et contribution

1 réponse

sambia39 Messages postés 610 Date d'inscription vendredi 31 juillet 2009 Statut Membre Dernière intervention 9 février 2023 49
4 juil. 2014 à 14:14
Bonjour pour pouvoir t'aider il est préférable de mettre ton code dans les balises suivantes
 <code cpp> < / code> 
mises à ta disposition afins que tes sources soit plus lisible
à bientôt
0