c ++枚举参数给出标识符错误

时间:2016-03-17 18:21:31

标签: c++ enums

所以,我有一个名为“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文件中它表示它是有效的。编译时我收到错误:“错误C2061:语法错误:标识符'方向'”

1 个答案:

答案 0 :(得分:1)

C ++中的一般规则是,在使用该东西之前必须首先看到事物的声明。

交换声明。 (另外,Player::是多余的。)

class Player
{
private:
    enum Direction { LEFT, RIGHT, UP, DOWN };

public:
    void move(Player::Direction direction);    
};