Bonjour,

C'est peut etre un peu tordu, mais ca me parait pratique de pouvoir faire ça, est-ce possible ? :

Soit une classe mere A qui possede une fonction public : f_public()
Soit des classes B et C qui héritent de A
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
      A
   ------
   |    |
   B    C
Maintenant, j'ai un callback qui prend en parametre un pointeur sur une classe de type void * :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
static void callback( void * MaClasse)
Au debut de mon callback, je dois donc caster MaClasse pour pouvoir appeller f_public(). Mais comme f_public() fait partie de A, je voudrais faire en sorte que mon callback accepte indifférement une classe de type B ou C.
Comment faire quelque chose du genre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
static void callback( void * MaClasse){
    A *classe = (A*)MaClasse;
    classe->f_public();
}
Sachant donc que MaClasse peut etre de type B ou C et non A

Merci

Edit :
Ou alors une autre solution éventuelle ? :
Lorsque je définit le param de mon callback, si j'ai un pointeur de type :
B *classe
Est ce qu'il y a un moyen d'avoir le pointeur vers la classe mere a partir de classe.
Comme ca je pourrait toujours envoyer un pointeur de type A* quelque soit le type de ma sous-classe.