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
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
3
4
5 A ------ | | B C
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 static void callback( void * MaClasse)
Comment faire quelque chose du genre :
Sachant donc que MaClasse peut etre de type B ou C et non A
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(); }
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.
Partager