c++里怎么把类中的函数的指针传递给另一个类?

2024-11-29 00:13:41
推荐回答(1个)
回答1:

1、成员函数指针还需要类实例对象来参与调用,而不是仅仅一个函数指针就可以调用。因此成员函数指针和全局函数指针是不兼容的:

typedef void (T::*B)(int x, int y, int z);
B b = &T::foo;
T t;
t.*b(x, y, z); // 必须指定t

2、通过context传入到你最终的回调函数里面。

void fun(A a, B b, C c, void* context)

{
   T* t = reinterpret_cast(context);
  

t->*b(x, y, z);

T t;
B b = &T::foo;
fun(a, b, c, &t);