title: "unresolved external symbol" referencing one class from another
body: <p>I'm trying to do something (as a C++ noob) that I thought should be easy: reference one class from another.  For some reason, I'm getting an error:</p>
  
  <blockquote>
    <p>Error 6   error LNK2019: unresolved external symbol "public: float * __thiscall Foo::Test(void)" (?Test@Foo@@QAEPAMXZ) referenced in function "void __cdecl Test(void)" (?Test@@YAXXZ)    Bar.obj</p>
  </blockquote>
  
  <p><strong>Foo.h</strong></p>
  
  <pre><code>class Foo
  {
  public:
      Foo(void);
      ~Foo(void);
      float* Test();
  };
  </code></pre>
  
  <p><strong>Foo.cpp</strong></p>
  
  <pre><code>#include "Foo.h"
  float* Test()
  {
      return new float[0];
  }
  </code></pre>
  
  <p><strong>Bar.h</strong></p>
  
  <pre><code>class Bar
  {
  public:
      Bar(void);
      ~Bar(void);
      void Test();
  };
  </code></pre>
  
  <p><strong>Bar.cpp</strong></p>
  
  <pre><code>#include "Bar.h"
  #include "Foo.h"
  void Test()
  {
      Foo* foo = new Foo();
      foo-&gt;Test();
  }
  </code></pre>
  
  <p>Why won't the compiler let me reference the class <strong>Foo</strong> from <strong>Bar</strong>?  I have no idea what this error means, nor any clue how to debug it.</p>