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

 我来答
教育小工匠老师

2018-04-04 · 知道合伙人教育行家
教育小工匠老师
知道合伙人教育行家
采纳数:13683 获赞数:165123
河顺镇劳动模范 鸿兴公司优秀员工

向TA提问 私信TA
展开全部

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<T*>(context);
  

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

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

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式