Comment passer un pointeur de fonction qui pointe du constructeur?

Je suis en train de travailler sur la mise en œuvre d'un mécanisme de réflexion en C++.
Tous les objets à l'intérieur de mon code sont une sous-classe de l'Objet(de mon propre type générique) qui contiennent un membre statique de référence de type de Classe.

class Class{
public:
   Class(const std::string &n, Object *(*c)());
protected:
   std::string name;     //Name for subclass
   Object *(*create)();  //Pointer to creation function for subclass
};

Pour toute sous-classe de l'Objet avec un membre de Classe statique donnée, je veux être capable d'initialiser 'créer' avec un pointeur vers le constructeur de cette sous-classe.

  • Bien que cela soit 6 ans après les faits, vous devriez donner beaucoup de pensée de savoir si vous voulez vraiment mettre en place votre propre réflexion mechanisn. D'abord songer à régler pour le moment de la compilation de "réflexion" à l'aide de modèles, type_traits et la SFINAE principe; ensuite, essayez l'une de l'existant en C++ réflexion bibliothèques; et c'est alors seulement que je considère avoir un aller à moi-même.
InformationsquelleAutor Kareem | 2009-06-05