title: How to call constructor of a template base class in a template derived class?
body: <p>Let's say I have a base template class Array:</p>
  
  <pre><code>template &lt;class T = Point&gt; class Array{
      protected:
          T* m_data;
          int size;
      public:
          Array();    // constructor
          Array(int n);   // constructor
          Array(const Array&lt;T&gt;&amp; s_data);  //Copy Constructor
          // and so on..
  }
  </code></pre>
  
  <p>And it has constructors and destructors. Also I have a derived template class NumericArray:</p>
  
  <pre><code>template &lt;class T = int&gt; 
  class NumericArray:public Array&lt;T&gt;{
  
      public:
          NumericArray();
          NumericArray(int n);
          NumericArray(const NumericArray&lt;T&gt;&amp; s_data);
  
          ~NumericArray();    //destructor
  
  };
  </code></pre>
  
  <p>Since I need to initialize the private members in the base class so I need to call the base constructors in the derived constructors. But how? I tried </p>
  
  <pre><code>template &lt;class T&gt;
  NumericArray&lt;T&gt;::NumericArray(int n){
      Array&lt;T&gt;(n);  // it will think I create a Array&lt;T&gt; names n
  }
  
  template &lt;class T&gt;
  NumericArray&lt;T&gt;::NumericArray(int n):Array(n){
      // No field in NumericalArray called Array
  }
  </code></pre>
  
  <p>Any idea?</p>