使用构造函数初始化枚举

问题描述

我已经找到了这个非常好的解释Initialising enum via constructors,但它不符合我的需要。

所以我在类中声明了一个枚举,并想在类构造函数中初始化它,然后通过方法中的 switch 语句调用这个枚举,但我无法实现它。 这是一个代码:

    class myClass {
        
        myClass();
        
        enum class State;

        void update();

        };
    
    
    //  initialise State() with default value,so state1=0,state2=1
    myClass::myClass() : State() {} 
    
    enum class
        myClass::State
        {
            state1,state2
        } enumState;
    
    
    
    
    void myClass::update(){
    
    switch (enumState){
    
    case enumState.state1:
         break;
    case enumState.state2:
         break;

    }
}

但显然这不是实现它的正确方法。

我收到这些错误:

错误:‘enum class myClass::State’不是‘myClass’的非静态数据成员

错误:请求'enumState'中的成员'state1',属于非类类型'myClass::State'

谁能解释一下如何实现这样的代码,如果我想用默认参数初始化 State 该怎么办?

谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)