作用域枚举 我正在做一个简单的突破克隆来练习我的C++技能。该游戏的资源是从一个名为“资源”的类中派生出来的,该类由一个用于标识资源类型的ID和一些虚拟函数组成。到目前为止,该类看起来如下所示: class Resource { private: int _id; protected: enum ResourceType { TEXT , PADDLE , BALL , BRICK }; public: Resource(int resourceID) : _id{resourceID} {} };

作用域枚举 我正在做一个简单的突破克隆来练习我的C++技能。该游戏的资源是从一个名为“资源”的类中派生出来的,该类由一个用于标识资源类型的ID和一些虚拟函数组成。到目前为止,该类看起来如下所示: class Resource { private: int _id; protected: enum ResourceType { TEXT , PADDLE , BALL , BRICK }; public: Resource(int resourceID) : _id{resourceID} {} };,c++,c++11,enums,C++,C++11,Enums,然而,为了熟悉C++11,我想切换到作用域枚举。我肯定我遗漏了一些东西,毕竟代码是无法编译的!。错误的修订代码如下: class Resource { private: ResourceType _id; protected: enum class ResourceType : int { TEXT = 0 , PADDLE , BALL , BRICK }; public: Resource(Res

然而,为了熟悉C++11,我想切换到作用域枚举。我肯定我遗漏了一些东西,毕竟代码是无法编译的!。错误的修订代码如下:

class Resource {
private:
    ResourceType _id;
protected:
    enum class ResourceType : int {
        TEXT = 0
        , PADDLE
        , BALL
        , BRICK
    };
public:
    Resource(ResourceType resourceID) : _id{resourceID} {}
};

给定编译器错误,我收到错误:“ResourceType”未在ResourceType\u id;行命名类型;,看起来我可能需要在其他地方原型化我的enum类,但我的尝试是徒劳的。请告知

您只需在使用之前声明类型,如下所示:

class Resource {
protected:
    enum class ResourceType : int {
        TEXT = 0
        , PADDLE
        , BALL
        , BRICK
    };
private:
    ResourceType _id;
public:
    Resource(ResourceType resourceID) : _id{ resourceID } {}
};

您只需在使用之前声明类型,如下所示:

class Resource {
protected:
    enum class ResourceType : int {
        TEXT = 0
        , PADDLE
        , BALL
        , BRICK
    };
private:
    ResourceType _id;
public:
    Resource(ResourceType resourceID) : _id{ resourceID } {}
};

这与C++11无关。原来的代码已经被破坏了,正如它应该在那里说的ResourceType一样;编译,但格式不好。这与C++11无关。原来的代码已经被破坏了,正如它应该在那里说的ResourceType一样;编译,但格式不好。效果很好。不知道为什么我没有考虑简单地移动那块代码,而不是尝试使用原型——回想起来有点傻@内特,我想你指的是远期申报;原型在C++中更模糊、更历史,没有广泛使用的术语。@ ListNeasraceSin轨道是正确的。我想这就是当你通过网络资源教你自己语言时所发生的事情。谢谢你的提醒。@Nate:是的,是的!:工作起来很有魅力。不知道为什么我没有考虑简单地移动那块代码,而不是尝试使用原型——回想起来有点傻@内特,我想你指的是远期申报;原型在C++中更模糊、更历史,没有广泛使用的术语。@ ListNeasraceSin轨道是正确的。我想这就是当你通过网络资源教你自己语言时所发生的事情。谢谢你的提醒。@Nate:是的,是的!: