实际工作中模板使用还比较多,而且使用类成员函数或者变量作为模板参数的情况是很多的,在这里先小小举个例子,
关于类成员函数在模板中的使用
。代码非常简单,但是在实际中确实非常常用,而且实用。//我只是个测试类而已class TestClass{public: void testFunc(int val){} double testFunc2(double val){return 0;}public: int m_testVal;};//也会用到的写法,在不是模板的情况下还挺实用的typedef void (TestClass::*test_func)(int);//不说boost,不谈lambda,仅仅只提模板而已//成员函数的情况template<class _ret="">void test_call(_Tp* obj, _Ret (_Tp::*_func)(_Param), _Param _p){ (obj->*_func)(_p);}//成员变量,这个用的不多,主要是在Imp下会用到template<class _param="">void test_member(_Tp* obj, _Param _Tp::*value, _Param _p){ obj->*value = _p;}int main(int argc, char *argv[]){ TestClass *tt = new TestClass; test_call<testclass, void="">(tt, &TestClass::testFunc, 6); test_call<testclass, double="">(tt, &TestClass::testFunc2, 6.9); //这个在非模板情况下比较常用 test_func f1 = &TestClass::testFunc; (tt->*f1)(7); //成员变量的使用 test_member(tt, &TestClass::m_testVal, 5); delete tt; return 1;}</testclass,></testclass,></class></class>没有多余的解释啦,代码灰常简单,