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.
La classe B contient diverse m�thodes pas utiles pour expliquer ce probl�me. ^^
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5 class A { public : void (B::* action) (void); };
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 class B { ... };
Maintenant dans ma classe principale j'aimerai faire ceci :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5 class C : public B { public : void actionC(void); };
Malheureusement �a ne fonctionne pas
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3 A * a = new A(); a->action = &C::actionC;![]()
Pour info voici le message d'erreur du compilateur :
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 ?
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2 error: cannot convert `void (C::*)()' to `void (B::*)()' in assignment
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.
Partager