Bonjour,
Après avoir chercher et ne pas avoir trouvé de réponse qui convenais à ce que je veux faire (mais peut-être ai-je mal cherché).
J'aimerai savoir comment réaliser la procedure suivante dont voici les données
avec B et C deux classes représentant très abstraitement la même chose (mais c'est pas exactement les même pour des raisons algorithmiques).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 typedef B (A::*FPTR_B)(X*) typedef C (A::*FPTR_C)(X*) class A { B evaluateB(X) { return *mapB[i](X) } C evaluateC(X) { return *mapC[i](X) } B PlusB(X) { return evaluateB(X->a) + evaluateB(X->b) } C PlusC(X) { return evaluateC(X->a) + evaluateC(X->b) } Map<String, FPTR_B> mapB = {("Plus", &PlusB), ... } Map<String, FPTR_C> mapC = {("Plus", &PlusC), ... } }
J'aurais voulu pouvoir ecrire une seul fois la methode Plus afin de limiter les erreurs.
Je sais que c'est un peu flou mais je n'ai pas encore l'autorisation de publier le code réel. La syntaxe est volontairement épurer donc evité de sortir des réponse idiotes tel que "Ca risque pas de compiler si tu écris ça". Je tiens à préciser que le code actuel fonctionne parfaitement.
Merci.
Partager