templates - C++ parameterized constructor In a templated class -


i start learning templates in c++ , not sure if need include template <class t>for implementation of parameterized constructor.

  template <class t>   class   {    t num;      //default constructor (parameterized)      template <class t>//getting error     a(t value)     { num=value;}   }  

i error shadow template parm < class t > when include template<class t> constructor.but works when comment out.

i wondering why dont need declare template constructor.

if you're sure need templated constructor function, use different parameter name template:

template <class t>   class   {        t num;      //default constructor (parameterized)      template <class u>                  // ^     a(u value)    // ^     { num=value;}   }; 

otherwise template parameter name t used templated constructor function shadow name used in class template declaration.


as asking in comment "what occasions use templated constructor?"

it's cases like

a<double> a(0.1f); 

note above simple example, , wouldn't need templated constructor. it's demonstrate templated constructor used conversion types different type used in instantiation.


"i wondering why dont need declare template constructor."

a template class without (or additional) non-templated constructor use t specified class template parameter parameter type

template <class t>   class   {        t num;      a(t value)    // ^     { num=value;}   }; 

this standard case, template classes don't need templated constructor or other templated functions.


Comments

Popular posts from this blog

angularjs - ADAL JS Angular- WebAPI add a new role claim to the token -

php - CakePHP HttpSockets send array of paramms -

node.js - Using Node without global install -