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 33 34 35 36 37 38
|
typedef void(MyClass::*parametre_fct)();
void MyClass::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" ] = &MyClass::parametre_input;
param_map[ "/output" ] = &MyClass::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
this->(i->second)();
}
}
void MyClass:parametre_input()
{
// traitement inoput
}
void MyClass::parametre_output()
{
//traitement output
} |
Partager