我正在将键盘输入映射到函数。我做了很大一部分,但现在我需要将一个字符串绑定到一个函数,以便当该字符串引用的键被按下时,它将被调用。我知道我可以使用 模板 void BindStringToAction(std :: string key,T * obj,R(T :: * methodPointer)(float));来自C++中不同类的方法的地图
但问题是存储它的继续使用。这些方法可以有一个基类,并且都可以具有相同的输入(float)和返回类型(void),但将它们存储在映射中需要设置ClassName。
所以基本上问题是我如何存储一个字符串和方法指针的映射,其中后者可以在任何类中。
虚幻做了同样的事情,但我找不到实现或类似的信息。我找到了std :: function,但是这也依赖于类名的变化,因此我无法为它制作地图。
你可以编写一个Builder来构建地图,然后存储一个名为'pair'的列表,它可以作为一组指令给Builder。这是否足够? –
Beta
在C++中,不存在“指向任何类的方法指针”。你所要求的是不可能的。你必须找出一种不同的方式来完成你想要完成的任何事情。 XY问题。 –
'std :: function f = [=](float val){obj-> methodPointer(val); };'。现在将它存储在'std :: map >' –