title: Unresolved external symbol on abstract class
body: <p>I have a class which looks like this:</p>
  
  <pre><code>class Team
  {
  protected:
      string name_;
      Pixel color_;
      static vector&lt;Team&gt;* teams_;
  public:
      string name() { return name_; };
      Pixel color() { return color_; };
      static void setTeams(vector&lt;Team&gt;* t) { teams_ = t; };
      static vector&lt;Team&gt;* teams() { return teams_; };
  }
  </code></pre>
  
  <p>It consists of mostly getters/setters.</p>
  
  <p>They are set elsewhere in main like:</p>
  
  <pre><code>Team::setTeams(&amp;activeTeams);
  </code></pre>
  
  <p>But I'm getting the error: </p>
  
  <pre><code>unresolved external symbol "public: static class std::vector&lt;class Team,class std::allocator&lt;class Team&gt; &gt; * Team::teams_"
  </code></pre>
  
  <p>I suspect its because the <code>teams_</code> vector is not initialized, but being an abstract class it should not ever be initialized or its constructor called. What should I do about this?</p>