J'ai un problème particulier que je veux résoudre, je ne suis pas sûr que ce soit possible car je ne trouve aucune information ou exemple de ce fait . Fondamentalement, je:Pointeur vers la fonction membre de la classe dérivée, mais pas de fonction dérivée (virtuelle)
class ParentObject {};
class DerivedObject : public ParentObject
{
void myFunction(){}
};
class OtherDerivedObject
{
void myOtherFunction(){}
};
et que vous voulez un pointeur de fonction ParentObjet :: * et avoir en mesure de prendre des fonctions soit de classe dérivée. Ma raison de vouloir le faire, j'ai une autre classe
class functionRegistry
{
std::map<string, *functionPoint> functionMap;
}
et chaque objet (idéalement dans ParentObjet mais peut faire individuellement dans les objets dérivés si nécessaire) ont une instance d'un functionRegistry, et je dois functionPoint à être capable de pointer vers des fonctions dans des objets de type DerivedObject ou OtherDerivedObject.
Merci à l'avance
On dirait [un problème XY classique] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem) pour moi. – YSC
pourriez-vous élaborer plus en particulier quel est votre cas d'utilisation? –
Ok, j'ai une solution maintenant (ci-dessous) mais pour le bien de l'intérêt: J'écris un moteur de jeu en utilisant l'architecture basée sur l'entité de composant, où les composants se parlent par des messages simples. Les messages se composent de choses comme FORCE_X + 50, où je vais analyser le message en: la première moitié qui sera corrélée à une fonction et la seconde qui sera un argument .. Je pense que cela crée un environnement flexible pour moi d'ajouter facilement fonctionnalité où j'en ai besoin.Différents composants prendront différents messages et feront des choses différentes. – ChrysmPsy