C ++初学者问题!

如果单例类的公共部分中有枚举,那么从单例类外部使用枚举值的正确方法是什么。

class MySingletonClass
{
    public:
      static MySingletonClass & Singleton();

      enum
      {
          eCodeZero         = 0,
          eCodeOne      = 1
      }MsgQueueCodes;
    protected:

          MySingletonClass ();
          ~MySingletonClass ();
};


我可以从此类外部访问此类枚举值。

MySingletonClass::Singleton().eCodeZero
MySingletonClass::Singleton().eCodeOne


我的问题是


这是执行此操作的正确方法吗?
是否有其他替代方法?
在另一个类中声明枚举变量的语法是什么? [需要执行类似MySingletonClass::MsgQueueCodes myMsgQCode; //不正确的语法的操作]


感谢您的时间。

最佳答案

如果您的enum仅与MySingletonClass有关,那么最好在类中声明它。那么您必须在类定义之外定义的函数中使用MySingletonClass::eCodeZero
如果在其他某些类中使用相同的enum,则最好的方法是在类外部但使用命名空间声明它。

09-27 03:35