关于类成员函数在模板中的使用 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

    实际工作中模板使用还比较多,而且使用类成员函数或者变量作为模板参数的情况是很多的,在这里先小小举个例子,

关于类成员函数在模板中的使用

。代码非常简单,但是在实际中确实非常常用,而且实用。

//我只是个测试类而已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>
没有多余的解释啦,代码灰常简单,

电脑资料

关于类成员函数在模板中的使用》(https://www.unjs.com)。

最新文章