我正在使用C ++制作游戏,但我遇到了枚举问题。我正在定义一个枚举:
enum class CharacterClass {
warrior = 0,
scout = 1,
mage = 2
};
我在Player类中使用它:
class Player
{
public:
Player();
~Player();
CharacterClass PlayerClass;
private:
};
当我尝试设置枚举状态时:
Player player();
player.PlayerClass = CharacterClass::mage;
编译器发现此错误:
request for member 'PlayerClass' in 'player', which is of non-class type 'Player()'
答案 0 :(得分:3)
最多vexing parse:player
被理解为函数声明。所以player.PlayerClass会触发此错误。
尝试:
Player player{}; // prefer uniform brace-initialisation
这篇关于variable initialization的博客文章很好地解释了每种表格的优缺点。
答案 1 :(得分:2)
播放器播放器()不会创建播放器类型的变量!相反,它声明了一个函数。