当我想将指针传递给隶属函数的指针时,函数Foo()
fo的签名classA
应该如何看待classB
?函数update()
在的一个位置上调用,classB
并通过的对象传递classA
。内部update()
功能Foo()
的classA
,应传递一个指向一个回调函数。该功能是的成员classB
。我在这里不能做任何静态的事情。有没有办法做到这一点,也许与boost::function
?
码:
class classA
{
public:
voif Foo(/*a pointer to a memberfunction of ClassB*/)
};
class classB
{
classB(){nVal = 0;}
int nVal;
public:
void increment(int n){nVal += n;}
void update(classA objA)
{
objA.Foo(increment)
}
};
您可以使用boost::bind
与boost::function
。
class classA
{
public:
void Foo(const boost::function<void(int)>& function)
{
}
};
class classB
{
public:
//
void update(classA objA)
{
objA.Foo(boost::bind(&classB::increment, this, _1));
}
};
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句