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
| class CClasseDeBaseObjetDynamique;
class CUneClasse : public CClasseDeBaseObjetDynamique;
class CUneAutreClasse : public CClasseDeBaseObjetDynamique;
CClasseDeBaseObjetDynamique * CreerObjetDUneClasse(void)
{
return new CUneClasse;
}
CClasseDeBaseObjetDynamique * CreerObjetDUneAutreClasse(void)
{
return new CUneAutreClasse;
}
typedef CClasseDeBaseObjetDynamique (*FonctionCreatrice)(void)
map< string, FonctionCreatrice > g_fonctions;
void Initialiser(void)
{
g_fonctions["UneClasse"] = CreerObjetDUneClasse;
g_fonctions["UneAutreClasse"] = CreerObjetDUneAutreClasse;
}
CClasseDeBaseObjetDynamique * CreeObjet(string nomClasse)
{
FonctionCreatrice fonc = g_fonctions[nomClasse];
if( fonc==NULL )
return NULL;
CClasseDeBaseObjetDynamique * obj = fonc();
return obj;
} |
Partager