template<class T>
void Call(T* ptr, int a, void(T::*MenFn)(int))
{
(ptr->*MenFn)(a);
}
1 class MyClass
2 {
3 public:
4 void Call(int a)
5 {
6
7 }
8 };
9
10 MyClass cs;
11 Call(&cs, 10, &MyCall::Call);
注意模板函数中T::*MenFun.
需要结合我的收藏里关于类成员函数传参的文章,只不过这里结合了模板函数,在模板函数里不能直接用T func来自动绑定类成员函数,
即 不能
template <class T>
void Call(T* ptr, int a, T func)
需要写成最上面那样才行。