title: Reference to "class" is ambigous
body: <p>I would like to implement a hash table example. 
  So for this aim, I have created one header, one hash.cpp and main.cpp files.
  in my hash.cpp , I tried to run a dummy hash function which takes key value and turns into an index value. however, it throws an error(reference to 'hash' is ambiguous)  whenever I try to create an object according to that hash class.</p>
  
  <p>this is my main.cpp:</p>
  
  <pre><code>#include "hash.h"
  #include &lt;iostream&gt;
  #include &lt;cstdlib&gt;
  #include &lt;string&gt;
  #include &lt;stdio.h&gt;
  
  using namespace std;
  
  int main(int argc, const char * argv[]) {
  
      hash hash_object;
      int index;
      index=hash_object.hash("patrickkluivert");
  
      cout&lt;&lt;"index="&lt;&lt;index&lt;&lt;endl;
  return 0;
  }
  </code></pre>
  
  <p>this is my hash.cpp:</p>
  
  <pre><code>#include "hash.h"
  #include &lt;iostream&gt;
  #include &lt;cstdlib&gt;
  #include &lt;string&gt;
  #include &lt;stdio.h&gt;
  
  
  using namespace std;
  
  int hash(string key){
      int hash=0;
   int index;
      index=key.length();
  
      return index;
  }
  </code></pre>
  
  <p>this is my hash.h</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  #include &lt;iostream&gt;
  #include &lt;cstdlib&gt;
  #include &lt;string&gt;
  
  using namespace std;
  
  #ifndef __hashtable__hash__
  #define __hashtable__hash__
  class hash
  {
      public:
       int Hash(string key);
  
  };
  
  #endif /* defined(__hashtable__hash__) */
  </code></pre>