class test{
public :
void * func(void *){
std::cerr << " void * fcu(void *) output" << std::endl;
return nullptr;
}
};
typedef void* (test::* MFP)(void*);
//example code:
test *tt = new test();
MFP p = &test::func;
//进行第一次转换
void * pfunc=(unsigned*)&p;
//根据传值获取成员函数地址
MFP * addr =(MFP*)pfunc;
//绑定函数与类
auto scall = std::bind(*addr,*tt,std::placeholders::_1);
//执行操作
void* px = NULL;
scall(px);
参照上述代码即可实现成员类函数与成员类完全由指针代替,既保留了指针的灵活性,同时又确保了调用函数的类型安全。