因此,在头文件中,我有一个名为“ Player”的类:

class Player
{
public:
    void move(Player::Direction direction);

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


在cpp文件中,我有这个:

void Player::move(Player::Direction direction)
{

}


现在我的问题是,intellisense说在头文件中的类内没有诸如direction之类的成员,但是在cpp文件中它说是有效的。编译时出现错误:“错误C2061:语法错误:标识符'Direction'”

最佳答案

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

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

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

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

关于c++ - C++枚举参数给出标识符错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36068736/

10-11 18:46