我昨天才弄清楚函数指针,我正在游戏引擎中实现控制台/命令系统。
我认为使用带有字符串键和函数指针值的映射将消除在运行命令时选择要做什么时对大量 if 语句的需要。
我收到此错误:
argument of type
"void (Game::*)(std::string prop, std::string param)"
is incompatible with parameter of type
"void (*)(std::string prop, std::string param)"
现在我想我知道这意味着什么了。我可以使用静态函数来解决这个问题,但我希望能够引用Game
.
然而,函数指针映射必须能够指向任何具有返回 void 和 2 个字符串参数的函数。
首先这可能吗?
如果不是,是否可以通过静态成员函数修改实例变量?我对此不抱太大希望。
一如既往地感谢任何帮助。