作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在过去的几个周末里,我一直在开发一款游戏。你们中的一些人可能已经在其他问题中看到过代码片段。我称之为魔法。
在 Magick 中,法术由 Spell
类控制,如下所示:
class Spell {
public:
int damage;
magicTypes type;
int manaCost;
};
其中 magicTypes
是一个枚举类
。但是,当我在我的代码中运行它时:
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
};
最佳答案
对于枚举类,您应该指定类名:
fireball.type = magicTypes::fire;
如果你想转换为 int 你可以这样做:
int i = static_cast<int>(magicTypes::fire);
关于c++ - 如何将一个对象声明为我的类的一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39688907/
我是一名优秀的程序员,十分优秀!