C++:使用后的类中的枚举定义

Big*_*olf 3 c++ enums nested class

编译器如何处理类中的枚举定义是否有一般性的方式,如果它可以使用枚举,private:但在public:之后的部分中定义它吗?

代码示例:

class MyClass{
private:
  myEnum myMember;

public
  enum myEnum { A, B, C };

}
Run Code Online (Sandbox Code Playgroud)

它似乎使用gpp工作,但这是正确的用法?

Dav*_*idW 6

你需要反过来做

class MyClass{
 public:
  enum myEnum { A, B, C };

 private:
  myEnum myMember;
};
Run Code Online (Sandbox Code Playgroud)

所以你在使用之前定义枚举.但是,将枚举的定义公开,但将其存储在私有中是很好的 - 您可能不希望用户能够myMember直接写入,但是您希望他们了解类函数返回的内容myEnum.