【发布时间】:2014-08-01 11:18:25
【问题描述】:
当我想将指针传递给classB 的成员函数时,函数Foo() fo 类classA 的签名必须如何查看?
函数update() 在实例classB 上被调用,并被传递给classA 的对象。在update() 内部,classA 的函数Foo() 应传递一个指向回调函数的指针。该函数是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)
}
};
【问题讨论】:
-
使用继承和虚函数。这就是为什么存在这种机制的原因。
-
您可能想了解
std::function和std::bind。 -
@JoachimPileborg:谢谢。我不知道 std::function 和 std::bind。
-
@barakmanos:在上述情况下,当
classA和classB类型明显不同并且classA中的Foo()只是引用一些可调用?
标签: c++ callback function-pointers boost-function