【发布时间】:2016-08-30 15:45:42
【问题描述】:
我有这个头文件,我正在尝试创建Item 类型的变量。我已经包含了#include "Item.h",但在编译时我仍然在两个私有变量上收到unknown type name Item 错误。
#ifndef PLAYER_H
#define PLAYER_H
#include <vector>
#include "Item.h"
using std::vector;
class Player
{
public:
// constructor
Player( void );
// destructor
virtual ~Player( void );
private:
Item item;
std::vector <Item> inventory;
};
#endif /* PLAYER_H */
这是怎么回事?
这是我所包含的Item.h
#ifndef ITEM_H
#define ITEM_H
#include <string>
#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 */
【问题讨论】:
-
注意:类体内定义的方法是自动内联的,所以
GetValue上的inline关键字是多余的。将 0 参数参数列表标记为void也是多余的。 -
在代码的顶部,您已经编写了“使用 std::vector”。用“std::”声明向量不是没必要吗?
标签: c++