在过去的几个周末,我一直在做游戏。你们中的一些人可能在其他问题中看到了代码片段。我称之为Magick。
在Magick中,法术由类Spell
控制,如下所示:
class Spell {
public:
int damage;
magicTypes type;
int manaCost;
};
magicTypes
是enum class
的位置。但是,当我在我的代码中运行它时:
Spell fireball;
fireball.damage = 50;
fireball.type = fire;
fireball.manaCost = 50;
我收到此错误:
magick1.cpp:117:1: error: ‘fireball’ does not name a type
我在使用fireball
法术的每个实例上都会收到此错误。
这个班级看起来和我其他课程的设置完全相同,而且它们起作用,我不知道为什么这个课程没有。
枚举定义如下所示:
enum class magicTypes {
fire,
water,
earth,
air,
dark,
light
};
答案 0 :(得分:1)
对于枚举类,您应该指定类名:
fireball.type = magicTypes::fire;
如果你想要转换为int,你可以这样做:
int i = static_cast<int>(magicTypes::fire);