chemin d'acces pour classe
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
Code:
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;
} |
[RQ : c'est un exemple...]
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 :
Code:
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) |
[C'est un faux code qui doit pas compiler, c'est juste pour donner l'idee]
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.