千万别用我的例子,都是乱写乱抄的,写到这里不是为了帮助别人,而是记一下自己是乱搞什么.所以请宽恕我写的如此凌乱.
#include <iostream>
using namespace std;
template<typename T>
class A
{
public:
//
A(void(T::*func)(int),T *t):func(func),object(t)
{
}
//
void operator()(int argv)
{
(object->*func)(argv);
}
private:
void(T::*func)(int);
T *object;
};
class B
{
public:
void doIt(int num)
{ cout << "call param: " << num<<endl;}
};
int main()
{
B b;
A<B> a(&B::doIt,&b);
a(5);
}