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 : S�lectionner tout - Visualiser dans une fen�tre � part
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 : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
 
class C : public B {
   public : 
      void actionC(void);
};
Maintenant dans ma classe principale j'aimerai faire ceci :

Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
 
A * a = new A();
a->action = &C::actionC;
Malheureusement �a ne fonctionne pas
Pour info voici le message d'erreur du compilateur :

Code : S�lectionner tout - Visualiser dans une fen�tre � part
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.