我在“枚举课”上遇到了困难。我知道这是一个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的经验。
答案 0 :(得分:1)
我刚刚发现了问题:编译器无法使用c ++ 11标准。
添加 -std = c ++ 11 作为编译器标志解决了它。