title: error LNK2019: unresolved external symbol in derived class
body: <p>The error occurred when I called a constructor of a derived class in another project. I omitted some details in the code. I am using Visual Studio 2012.</p>
  
  <p>-Base/derived classes and the test file are in two different projects. Base/derived classes can be compiled without problems.</p>
  
  <p>-The Test project can be compiled successfully when comment the constructor line.</p>
  
  <p>-Test.cpp plays well with other constructor in the DerivationFunction file.</p>
  
  <pre><code>// Test.cpp
  #include "DerivationFunction.h"
  
  Child con(123, 123);  // error LNK2019: unresolved external symbol "public: __thiscall Child::Child(unsigned short,unsigned int)" (??Child@@QAE@GI@Z) referenced in function _main 
  </code></pre>
  
  <p>The header file of base class and derived class:</p>
  
  <pre><code>// DerivationFunction.h
  class Base
  {
  public:
      virtual void AppendEnums() = 0;
      static int CopyBuffer();
      uint16 GetFeatureID();
  
  protected:
      uint16 baseValue;
      static int Copy();
  };
  
  // Child class
  class Child : public Base
  {
  public:
      uint32 childValue;
      Child(uint16 featureID, uint32 value);
      void AppendEnums();
  };
  </code></pre>
  
  <p>The source file:</p>
  
  <pre><code>// DerivationFunction.cpp
  int Base::CopyBuffer()
  {
      return 0;
  }
  
  uint16 Base::GetFeatureID()
  {
      return baseValue;
  }
  
  int Base::Copy()
  {
      return 0;
  }
  
  // Child class
  Child::Child(uint16 featureID, uint32 value)
  {
      baseValue = featureID;
      childValue = value;
  }
  
  void Child::AppendEnums()
  {
  }
  </code></pre>