[POO] Pointeur sur fonction membre et héritage
Bonjour,
J'ai un petit soucis de compilation avec une partie d'un programme.
J'ai trois classes principales, une classe A, B et C.
La classe A contient comme une propriété de type pointeur sur une méthode de classe B.
Code:
1 2 3 4 5
|
class A {
public :
void (B::* action) (void);
}; |
La classe B contient diverse méthodes pas utiles pour expliquer ce problème. ^^
Et enfin j'ai la classe C qui hérite de la classe B.
Code:
1 2 3 4 5
|
class C : public B {
public :
void actionC(void);
}; |
Maintenant dans ma classe principale j'aimerai faire ceci :
Code:
1 2 3
|
A * a = new A();
a->action = &C::actionC; |
Malheureusement ça ne fonctionne pas :cry:
Pour info voici le message d'erreur du compilateur :
Code:
1 2
|
error: cannot convert `void (C::*)()' to `void (B::*)()' in assignment |
Donc voici ma question : comment faire pour affecter à une variable de type pointeur sur méthode de classe B, une valeur de type pointeur sur méthode de classe C, en sachant que C hérite de B ?
Si vous avez besoin d'information complémentaire, n'hésitez pas.
(j'ai volontairement éviter de mettre le code qui me semble servir à rien, mais si vous pensez que ça vient d'ailleur, je le met en entier)
Merci d'avance.