Bonjour,
Je souhaiterais generaliser un code (que d'ailleurs j'ai mis recemment en open source). Pour cela, j'aurais besoin de fournir une sorte de "chemin d'acces pour classe", je m'explique :
soit les definitions suivantes
[RQ : c'est un exemple...]
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
19
20
21 class A { public : int a1; int a2; //plein de code ;) }; struct B { A boa; int babar; } struct C { B c1; B c2; }
L'idee recherchee, c'est que le programmeur connait ses classes et il souhaite faire dans une fonctions generique (pas une methode de classe donc) dans laquelle on preciserait (en parametre par exemple) comment se rendre a l'information specifique de tel ou telle classe :
[C'est un faux code qui doit pas compiler, c'est juste pour donner l'idee]
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 int Commentserendreaa1( TT oujesuis) { //je sais que je suis sur un B c1 de ma class C return oujesuis.boa.a1; } template <class TT, class VV> mafunct(TT tutu, VV vivi) { vivi(tutu); } //et dans un "main" C c01; mafunction(c01.c1, &Commentserendreaa1)
Si vous trouver ma source, vous comprendrez que c'est pour se balader dans un tableau et rechercher une information specifique qui est cache derriere un chemin d'acces specifique mais constant.
Si vous ne comprenez pas, merci de le dire, je m'explique souvent mal.
Vu mon exemple, je pense que Commentserendreaa1 est une adresse de fonction a passer.
Partager