今天碰到一个问题,需要把业务实现逻辑与另一个类的设计分离;试了好几次都没有成功,最后在同事的帮忙下改好了,记录一下。
#include <stdio.h>
template <class T>
class A
{
public:
typedef void (T::*func)();
A(){};
~A(){};
void init(T *t,func f){(t->*f)();};
};
class B
{
public:
void test()
{
printf("test");
}
};
int _tmain(int argc, _TCHAR* argv[])
{
B b;
A<B> a;
a.init(&b,&(B::test));
return 0;
}