У меня есть определенная проблема, которую я хочу решить, я не уверен, возможно ли это, поскольку я не могу найти какую-либо информацию или примеры ее выполнения , В принципе, у меня есть:Указатель на функцию-член производного класса, но не производную (виртуальную) функцию
class ParentObject {};
class DerivedObject : public ParentObject
{
void myFunction(){}
};
class OtherDerivedObject
{
void myOtherFunction(){}
};
и хочет функцию указателя на ParentObject :: * и он в состоянии взять функции из любых производного класса. Моя причина для желания сделать это, у меня есть еще один класс
class functionRegistry
{
std::map<string, *functionPoint> functionMap;
}
и каждый объект (в идеале в ParentObject, но можно сделать индивидуально в производных объектов, если необходимо) иметь экземпляр functionRegistry, и мне нужно functionPoint к уметь указывать на функции в объектах любого типа DerivedObject или OtherDerivedObject.
Заранее спасибо
Похож на [классическую проблему XY] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem) для меня. – YSC
Можете ли вы подробнее рассказать о том, что ваш прецедент? –
Хорошо. У меня есть решение сейчас (ниже), но для интереса: я пишу игровой движок, используя архитектуру на основе компонентов, где компоненты общаются друг с другом с помощью простых сообщений. Сообщения состоят из таких вещей, как FORCE_X + 50, где я буду анализировать сообщение: первая половина, которая будет коррелировать с функцией, а вторая - аргументом. Я так понимаю, что она создает гибкую среду для меня, чтобы легко добавить где мне это нужно.Различные компоненты будут принимать разные сообщения и делать разные вещи. – ChrysmPsy