我有一个结构称为富其中包含调用任何方法将其传递和返回值的函数。通个人会员和非成员函数指针作为参数
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的方法,但将支持非成员和成员函数?
你可以使用C++ 11? – 2014-10-03 10:14:15
不,我不能..... – Beakie 2014-10-03 10:14:30
你想'的boost :: bind'(绑定了'this'指针)和模板可调用。从技术上讲,这将导致多个'fooFunc'---方法---成员函数,但只有一个'fooFunc'成员函数模板! –
2014-10-03 10:15:27