title: unresolved externals c++, default constructor
body: <p>I am working on a  VS2010C++ console application, and have created a Manager class that holds static, and dynamic objects of the same type (Thing) one of which being a vector. </p>
  
  <p>I originally got an error on the constructor of the manager class stating that the class it was composed of had no default constructor (but it shouldn't have a default constructor because the objects need to be instantiated at run time, and with run time entered information) I ended up creating a default constructor for the held class (that does nothing), and then I was able to continue after that.</p>
  
  <p>then I got done with all the functionality I need for the program, and I get a whole bunch of LNK2019 "something about unresolved external symbol MethodA referenced in functionB.</p>
  
  <p>first why do I need a default constructor for the managed class if I need it to be done at run-time?</p>
  
  <p>second how do I get rid of these LNK2019? (all of these methods are marked inline in the headers, and its only references to, or from the manager class, and there are no naming conflicts.) as a small note could it have something to do with having to mix access modifiers of . (for the static members), and -> (for the dynamic members)?</p>
  
  <p>Edit:
  was able to get rid of the default constructor by limiting its need to a single method, and modifying the other statics to dynamic</p>
  
  <p>for the linker error: in Thing.h</p>
  
  <pre><code>class Thing{
  public : int ** Array;
  public : int size;
  public : Point pi;
  public : SinglyLinkedList * moves;
  ...
  public :inline bool operator==(const Thing * _thing);
  ...
  };
  </code></pre>
  
  <p>Thing.cpp</p>
  
  <pre><code>bool Thing::operator==(const Thing * _Thing){
      for(int ii = 0; ii &lt; m; ii++){
          for(int jj = 0; jj &lt; m; jj++){
              if(Array[ii][jj] != _Thing-&gt;Array[ii][jj]){
                  return false;
              }
          }
      }
      return true;
   }
  </code></pre>
  
  <p>ThingMgr.h</p>
  
  <pre><code>class ThingMgr {
  public : Thing * control;
  public : Thing * Current;
  public : Thing * previous;
  public : int size;
  </code></pre>
  
  <p>main.cpp</p>
  
  <pre><code>int _tmain{
      ...
      ThingMgr * TestTings= new ThingMgr(num);
      ...
      if(testThings-&gt;control-&gt;operator==(testThings-&gt;Current)){  // pretty sure its here as it is not called anywhere else in the function.
      ...
  }
  </code></pre>
  
  <p>error</p>
  
  <pre><code>1&gt;Project_1.obj : error LNK2019: unresolved external symbol "public: bool __thiscall Thing::operator==(class Thing const *)" (??8Board@@QAE_NPBV0@@Z) referenced in function _wmain
  </code></pre>
  
  <p>I thought it might have been needing to put parentheses in, but then VS yelled about expecting a member. there are other functions, but maybe if I can figure out what is going on here then those should be fixable. </p>