如何传递指针到另一个类的成员函数

C++: How do I pass a pointer to a member function of another class?

本文关键字:成员 函数 另一个 何传递 指针      更新时间:2023-10-16

当我想传递一个指向classB成员的函数的指针时,函数Foo()到类classA的签名如何?函数update()classB的一个实例上被调用,并被传递给classA的一个对象。在update()内部,classAFoo()函数将传递一个指向回调函数的指针。该函数是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::bindboost::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));
   }
};