c++ - Template as parameter in class -
i have header file , in header file make template , want use template on 1 function , not force other functions. possible type before function did in main
? example:
testtemp.h
// testtemp.h #ifndef _testtemp_h_ #define _testtemp_h_ template<class t> class testtemp { public: testtemp(); void setvalue( int obj_i ); int getalue(); void sum(t b, t a); private: int m_obj; }; #include "testtemp.cpp" #endif
testtemp.cpp
//testtemp.cpp include<testtemp.h> testtemp::testtemp() { } void testtemp::setvalue( int obj_i ) { m_obj = obj_i ; } int testtemp::getvalue() { return m_obj ; } template<class t> void testtemp<t>::sum(t b, t a) { t c; c = b + a; }
main.cpp
//main.cpp include<testtemp.h> void main() { testtemp t; t.sum<int>(3,4); }
have ideas?
your testtemp template class already, no need make sum template function.
testtemp<int> t; t.sum(3, 4);
if want make sum
function template function of testtemp
:
template<class t> class testtemp { public: //.... template<typename u> void sum(u b, u a); private: int m_obj; };
to implement outside template class:
template<class t> template<typename u> void testtemp<t>::sum(u b, u a) { t c; c = b + a; } int main() { testtemp<int> t; t.sum<int>(3, 4); }
however, feel need free template function
template<typename t> t sum(t a, t b) { return + b; }
Comments
Post a Comment