C++ Why Is There "Unknown Type" When Class Header is Included?
<p>I have this header file and I'm trying to make variables of type <code>Item</code>. I've included <code>#include "Item.h"</code> and yet I still get a <code>unknown type name Item</code> error on both private variables when I compile.</p>

<pre><code>#ifndef PLAYER_H
#define PLAYER_H

#include &lt;vector&gt;

#include "Item.h"

using std::vector;

class Player
{ 

public:

    // constructor
    Player( void );

    // destructor
    virtual ~Player( void );

private:

    Item item;
    std::vector &lt;Item&gt; inventory;

};

#endif  /* PLAYER_H */
</code></pre>

<p>Whats up with this?</p>

<p>Heres the <code>Item.h</code> that I'm including</p>

<pre><code>#ifndef ITEM_H
#define ITEM_H

#include &lt;string&gt;
#include "Player.h"
#include "GlobalDefs.h"

class Item {
public:
    Item();
    Item(gold_t v, std::string n);

    virtual ~Item();

    // Getter
    inline virtual gold_t GetValue (void) 
    { 
        return value; 
    }

    // Getter
    inline virtual std::string GetName (void);

     // Getter
     virtual std::string GetItemText(void);

protected:
    gold_t value;
    std::string name;

};

#endif  /* ITEM_H */
</code></pre>