【发布时间】:2014-06-29 16:12:10
【问题描述】:
我正在开发一个简单的 Breakout 克隆来练习我刚刚起步的 C++ 技能。游戏的资源是一个名为“资源”的类的子类,该类由一个用于识别资源类型的 ID 和一些虚拟函数组成。到目前为止,这个类看起来像这样:
class Resource {
private:
int _id;
protected:
enum ResourceType {
TEXT
, PADDLE
, BALL
, BRICK
};
public:
Resource(int resourceID) : _id{resourceID} {}
};
但是,为了让自己熟悉 C++11,我想切换到作用域枚举。我确定我在这里遗漏了一些东西(毕竟代码不会编译!)。错误修改代码如下:
class Resource {
private:
ResourceType _id;
protected:
enum class ResourceType : int {
TEXT = 0
, PADDLE
, BALL
, BRICK
};
public:
Resource(ResourceType resourceID) : _id{resourceID} {}
};
鉴于我收到的编译器错误(ResourceType _id; 行中的“错误:'ResourceType' 没有命名类型”),看来我可能需要在其他地方对我的枚举类进行原型制作,但我的尝试已经徒然。请指教!
【问题讨论】:
-
这与 C++11 无关。原来的代码已经被破坏了,因为它应该在那里说
ResourceType _id。 -
啊 - 好抓;编译,但格式不正确。