其他类不识别枚举类

时间:2014-12-24 17:22:33

标签: c++ c++11 enums

我在“枚举课”上遇到了困难。我知道这是一个C ++ 11的功能,我也读过enum类和普通枚举之间的区别。

我已经宣布了一个“令牌”枚举类:

Token.h

enum class Token
{
    EMPTY,
    BLACK,
    WHITE
};

和一个使用Token类的“Game”类:

Game.h

#include <Board.h>
#include <Token.h>

class Game
{
public:
    Game();
    ~Game();
    ...
private:
    Board board;
    Token turn;
    bool endGame;
    Token winner;
};

Game.cpp

Game::Game()
{
    Board board(6,7); //Create board with 6*7 size
    board.reset(); //Reset the board
    turn=Token::WHITE; //First turn for WHITE player
    endGame=false;
    winner=Token::EMPTY;
}
...

编译器为Game的构造函数提供了以下错误:

在构造函数Game :: Game()中 错误:'令牌'不是类或命名空间

在Game类中使用Token类变量时会发生同样的错误。

如果我只是枚举枚举类中的enum类并在使用枚举值之前删除“Token ::”引用,它就可以完美地工作。怎么了?

P.D.- FYI,我是C ++编程的新手,但我有使用PASCAL,C和使用Java进行OOP的经验。

1 个答案:

答案 0 :(得分:1)

我刚刚发现了问题:编译器无法使用c ++ 11标准。

添加 -std = c ++ 11 作为编译器标志解决了它。