title: Use of class template requires template arguments
body: <p>Hi I'm still wondering why I'm getting this error message :</p>
  
  <p>Use of class template 'Array' requires template arguments        </p>
  
  <p><strong>Header :</strong></p>
  
  <pre><code>#ifndef Array_h
  #define Array_h
  
  
  template&lt; typename T&gt;
  class Array
  {
  public:
      Array(int = 5);
      Array( const Array &amp;);
  
      const Array &amp;operator=(Array &amp;);
      T &amp;operator[](int);
      T operator[](int) const;
  
      // getters and setters
      int getSize() const;
      void setSize(int);
  
      ~Array();
  
  private:
      int size;
      T *ptr;
  
      bool checkRange(int);
  
  
  };
  
  #endif
  </code></pre>
  
  <p><strong>CPP file</strong></p>
  
  <pre><code>template&lt; typename T &gt;
  const Array &amp;Array&lt; T &gt;::operator=(Array &amp;other)
  {
      if( &amp;other != this)
      {
          if( other.getSize != this-&gt;size)
          {
              delete [] ptr;
              size = other.getSize;
              ptr = new T[size];
          }
  
          for ( int i = 0; i &lt; size; i++)
          {
              ptr[i] = other[i];
          }
      }
      return *this;
  }
  </code></pre>
  
  <p>Problem seems to do with returning a const reference to object.</p>
  
  <p>Thanks.</p>