title: No Matching Function Call
body: <p>I'm new to C++ and trying to code a HashTable data structure.
  I've written it to be generic using templates, and I've included a HashEntry object to use in it to allow for easy quadratic probing for collisions. 
  The code I have is:</p>
  
  <p>(in a .C file that #include's the below class definition .H file):</p>
  
  <pre><code>   HashEntry::HashEntry()
     {
        this-&gt;isActive = false;
     }
  </code></pre>
  
  <p>And the associated .H file with the class definitions is:</p>
  
  <pre><code>#include &lt;iostream&gt;
  #include &lt;string&gt;
  #include "Entry.C" 
  using namespace std;
  
  #define Default_Size 50000
  
  class HashEntry;
  
  template &lt;class T&gt; class HashTable
  {
  private:
    int size;
    int occupied;
    T array[Default_Size];
  
  public:
    HashTable();
    int Size();
    void Add(T t);
    void DebugAdd(T t, int index);
    T* Get(string index);
    /* How do I declare the existence of HashEntry BEFORE here? */
    int FindNextOpen(HashEntry he); // Only works for hash_entry objects!
    int Hash(string str);
    void Rehash();
  };
  
  class HashEntry
  {
  private:
    Entry e;
    bool isActive;
  
  public:
    HashEntry();
    HashEntry(Entry e);
    bool IsActive();
    Entry GetEntry();
  };
  </code></pre>
  
  <p>Whenever I try and compile everything, I get the error for the HashEntry constructor above:
  "no matching function for call to Entry::Entry()" ... "candidates are.....".
  I have no idea what it means -- when I try to include a default Entry() constructor (my first interpretation), it throws more errors.</p>
  
  <p>Thanks for the help!</p>
  
  <p>UPDATE -- ENTRY.C:</p>
  
  <pre><code>#include "Entry.H"
  /* ***Entry Methods*** */
  /*
   * Overloaded Entry obejct constructor that provides a string value.
   */
  Entry::Entry(string s)
  {
    this-&gt;value = s;
    this-&gt;count = 0;
  }
  
  /*
   * Returns the number of times this Entry has been accessed/
   * found.
   */
  int Entry::Count()
  { return this-&gt;count; }
  
  /*
   * Returns the string value stored in the Entry object.
   */
  string Entry::Value()
  { return this-&gt;value; }
  </code></pre>