Appel dynamique de méthode
J'ai trouver dans la FAQ une maniere de tester une chaine de caracteres celon plusieurs critères :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| // fonctions de traitement
void parametre_input();
void parametre_output();
void parametre_inconnu();
// type pointeur de fonction de traitement
typedef void (*parametre_fct)();
void analyse_parametre( const string & Param )
{
static map<string, parametre_fct> param_map;
// initialiser la map si ce n'est pas fait
if ( param_map.empty() )
{
param_map[ "/input" ] = parametre_input;
param_map[ "/output" ] = parametre_output;
}
// rechercher la fonction associée à Param
map<string, parametre_fct>::const_iterator i = param_map.find( Param );
if ( i == param_map.end() )
{
// échec
parametre_inconnu();
}
else
{
// appeler la fonction associée
(i->second)();
}
} |
Je souhaiterai implanter sa dans une classe et au lieu d'appellé une fonction appellé une méthode de cette même classe la partie à modifier serai donc celle-ci :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| // rechercher la fonction associée à Param
map<string, parametre_fct>::const_iterator i = param_map.find( Param );
if ( i == param_map.end() )
{
// échec
parametre_inconnu();
}
else
{
// appeler la fonction associée
(i->second)();
} |
Mais je n'ai aucune idée de comment procéder.
Merci