Les callback et les classes
Salut,
J'ai (peut etre tr�s mal) cherch� tant sur le net que sur le forum, mais je j'ai pas trouv� r�ellement la r�ponse que je cherche...Je me permet donc de vous la poser ici:
Je cherche � comprendre le m�canisme d'impl�mentation du callback d'une m�thode de classe.
Par exemple, une classe toute simple du genre de
Code:
1 2 3 4 5 6 7
| class MaClass
{
private:
//some members
public:
void Mafonct(int a, int b);
} |
Pour ce que j'en ai compris, il faut commencer par d�clarer une variable qui contienne un pointeur de fonction.
En travaillant proprement, on utiliserait le typedef sous la forme de
Code:
1 2
| typedef void(*ptr2int) (int, int);
ptr2int MonPtrFonction; |
(les noms �tant surtout choisis pour la compr�hension)
Le deuxi�me travail est de cr�er une fonction qui appelle la fonction point�e
Code:
1 2 3 4 5
|
void CallBack2int(ptr2int ptr)
{
ptr();
} |
(d�j�, l�, j'ai un doute sur les arguments � passer � CallBack2int :? :oops: )
Voil�, en gros, ce que j'ai compris (si j'ai fait une erreur quelque part, merci de me le signaler ;))
Les questions qui tuent: En allant du plus simple au plus compliqu�:
Q1- Comment impl�menter les choses pour qu'un appel du genre de
Code:
1 2 3 4 5 6
|
main
{
//...
CallBack2int(MonPtrFonction);
} |
appelle la m�thode Mafonct de ma classe ?
Q2- Comment impl�menter CallBack2int et MonPtrFonction pour qu'ils soient respectivement m�thode et membre de MaClasse (qu'un appel � CallBack2int se fasse sous la forme de MonObjet->CallBack2int() ou MonObjet.CallBack2int () selon les circonstance)?
Y a-t-il des points auxquels il faut etre attentif? (membres et/ou m�thodes statiques, par exemple)
Q3- CallBack2int peut il etre m�thode virtuelle pure dans un but polymorphique?
Je vous remercie d'avance ;)