如何将对象声明为我班级的一部分?

时间:2016-09-25 16:00:33

标签: c++ class oop

在过去的几个周末,我一直在做游戏。你们中的一些人可能在其他问题中看到了代码片段。我称之为Magick。

在Magick中,法术由类Spell控制,如下所示:

class Spell { 
    public:
        int damage;
        magicTypes type;
        int manaCost;
    };

magicTypesenum 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
};

1 个答案:

答案 0 :(得分:1)

对于枚举类,您应该指定类名:

 fireball.type = magicTypes::fire;

如果你想要转换为int,你可以这样做:

int i = static_cast<int>(magicTypes::fire);