template argument required for class
<p>I have a dynamic array-based class that I'm calling <code>MyList</code>, that looks as follows:</p>

<pre><code>#ifndef MYLIST_H
#define MYLIST_H
#include &lt;string&gt;
#include &lt;vector&gt;

using namespace std;

template&lt;class type&gt;
class MyList
{
public:
  MyList(); 
  ~MyList(); 
  int size() const;
  type at() const;
  void remove();
  void push_back(type);

private:
  type* List;
  int _size;
  int _capacity;
  const static int CAPACITY = 80;
};

#endif
</code></pre>

<p>I also have a another class that I'm calling <code>User</code> that I want to include an instance of <code>MyList</code> as a private data member. User looks like this:</p>

<pre><code>#ifndef USER_H
#define USER_H
#include "mylist.h"
#include &lt;string&gt;
#include &lt;vector&gt;

using namespace std;

class User
{
public:
  User();
  ~User();

private:
  int id;
  string name;
  int year;
  int zip;
  MyList &lt;int&gt; friends;
};

#endif
</code></pre>

<p>When I try to compile I get an error in my <code>user.cpp</code> file:</p>

<blockquote>
  <p>undefined reference to <code>MyList::Mylist()</code></p>
</blockquote>

<p>I find this odd because <code>MyList</code> is completely unrelated to <code>user.cpp</code>, which only contains my User constructor and destructor.</p>
