我有一个名为 Foo 的结构,其中包含一个函数,该函数调用它传递的任何方法并返回值。
struct Foo
{
unsigned char fooFunc(unsigned char param, unsigned char(getValueMethod)(const unsigned char))
{
return getValueMethod(param);
}
};
我有一个名为 barFunc 的方法...
static unsigned char barFunc(const unsigned char paramA)
{
return paramA * 2;
}
...可以很好地传递给 fooFunc
Foo foo1;
foo1.fooFunc(10, &barFunc);
但我也希望 fooFunc 接受成员函数,比如 bazFunc ....
struct Baz
{
unsigned char bazFunc(const unsigned char paramB)
{
return paramB * 3;
}
};
……被这样称呼……
Foo foo2;
Baz baz;
foo2.fooFunc(10, ?????);
...但这是无效的。
我在将成员函数作为参数传递的主题上找到的所有内容都在谈论在调用对象之前知道对象来自哪个类,这意味着我必须创建 2 个函数而不是一个。
有没有一种我还没有找到的方法,它只需要 1 个 fooFunc 方法,但会支持非成员和成员函数?