Bonjour,
Je suis face a un problème, j'ai des classes Module qui sont générique:
Puis j'ai de multiple classes qui dérivent de ces modules, et ces objets sont connecté en eux comme un graphe. Dans un module j'aimerai avoir accès à une fonction spécifique d'un parent en parcourant le graphe récursivement, voila mon choix d’implémentation:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 class Module { Module _parent ; void FunctionGeneric() {} }
Je trouve se code pas très propre de devoir "caster", une autre solution est de remonté la fonction FunctionSpec() dans la classe Module. J'aimerai bien avoir votre avis sur la meilleure implémentation.
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
16
17
18 class ModuleA : Module { void FunctionSpec(); } class ModuleB : Module { void Recherche() { Module parent = _parent ; for(;;) { ModuleA parentA = (ModuleA)parent; if ( parentA != NULL ) { parentA.FunctionSpec(); break; } else parent = parent._parent ; } } }
Merci d'avance
Partager