今天论坛上看到的,非常不错~ 我改写成了一个模板类,在这里给大家分享。
#include <stdio.h>
//
// 被回调的类
class A
{
public:
void TestFunc(int a)
{
printf("%d\n", a);
}
};
template <class T>
class CMyCall
{
typedef void(T::*LPTESTFUNC)(int);
T* m_pCallBack;
LPTESTFUNC m_CallFunc;
public:
CMyCall()
{
m_pCallBack = 0;
m_CallFunc = T::TestFunc;
}
void Call()
{
(m_pCallBack->*m_CallFunc)(18);
}
};
void main()
{
CMyCall<A> my;
my.Call();
getchar();
}