Bonjour
Voici mon problème (qui n'est pas courant et après de nombreuses recherches infructueuses je me permet de poster ici) :
j'ai une fonction dans une classe qui attend comme un argument un pointeur de fonction.
L'appel de cette fonction est le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
L'objet Form1 est de type CForm1 qui est une classe définit par l'utilisateur et comprend une fonction ControlEvent dont la signature correspond a pf
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2AControl->setFunction(Form1->ControlEvent); // Form1->ControlEvent est une fonction correcte sauf qu'elle est dans une classe
(sauf que la fonction étant dans une classe ce n'est plus la même signature et la est le problème n'est-ce pas ?)
La question est comment transformer cette fonction membre en une fonction pour être utilisé dans l'appel.
En gros ça doit etre un peu comme dans la STL avec for_each quand on utilise mem_fun mais je ne comprend pas comment procéder.
J'avais essayé l'appel comme ceci:
et j'obtient le message d'erreur suivant : "Could not find a match for 'mem_fun<S,T,A>(void (CForm1::*)(X*,Y *))'"
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2AControl->setFunction(mem_fun(&CForm1::Button1OnClick));
(Mon compilateur est Borland C++ 5.5 en ligne de commande sous windows XP.)
J'espère avoir été clair(meme si j'en ai pas trop l'impression
)
Merci d'avance et n'hésitez pas à me demander des éclaircissements sur le code

 

 
		
		 
        

 
			
			

 
   


 [STL]Pointeur sur fonction membre (conversion avec mem_fun)
 [STL]Pointeur sur fonction membre (conversion avec mem_fun)
				 Répondre avec citation
  Répondre avec citation
Partager