编译器是如何处理类中的枚举定义的一般方式,如果它在私有中使用枚举是否有效:但是在公共部分中定义它:之后的部分?
代码示例:
class MyClass{
private:
myEnum myMember;
public
enum myEnum { A, B, C };
}
它似乎使用gpp工作,但这是正确的用法?
解决方法:
你需要反过来做
class MyClass{
public:
enum myEnum { A, B, C };
private:
myEnum myMember;
};
所以你在使用之前定义枚举.但是,将枚举的定义公开,但将其存储在私有中是好的 – 您可能不希望用户能够直接写入myMember,但是您希望他们了解如果类函数返回myEnum是什么.