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

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), ... }
 
}
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).

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.