【发布时间】:2016-03-17 18:21:31
【问题描述】:
所以,我有一个名为“Player”的类,在头文件中我有这个:
class Player
{
public:
void move(Player::Direction direction);
private:
enum Direction { LEFT, RIGHT, UP, DOWN };
};
在 cpp 文件中我有这个:
void Player::move(Player::Direction direction)
{
}
现在我的问题是,intellisense 说标题中的类内没有方向这样的成员,但在 cpp 文件中它说它是有效的。编译时出现错误:“error C2061: syntax error : identifier 'Direction'”
【问题讨论】:
-
你的代码能编译吗? Intellisense 在索引器通过之前是不可靠的。
-
只需将枚举声明移到函数声明上方即可。这是c++该死的! (不生气)
-
我刚刚对此进行了测试,如果您将 Enum 移到类的顶部,则可以完美运行。
-
如果 move 是公开的,那么枚举也应该是公开的,以便调用代码可以使用它。