类定义如下: kname.h class KName { public: typedef void (KName::*FNThreadFun)(); KName(void); ~KName(void); void ShowTest() { std::cout<<"ShowTest"<<std::endl; } void testFunc(KName* pName) { pName->m_func = &KName::ShowTest; (pName->*pName->m_func)(); pName->m_func = NULL; } FNThreadFun m_func; }; 调用时: KName* p = new KName(); FNThreadFun pf = &KName::ShowTest; (p->*pf)(); delete p; 当使用类成员m_func调用函数时: KName name; KName* p = new KName(); name.testFunc(p); delete p; testFunc函数写法: void testFunc(KName* pName) { pName->m_func = &KName::ShowTest; (pName->*pName->m_func)(); pName->m_func = NULL; }