C++开关枚举错误

标签 c++ c++11 enums

我正在使用枚举制作一个简单的开关函数,但是我收到错误“ACT”未定义标识符。在 AS.cpp 中。不确定我在这里做错了什么......

如果您能帮助解释为什么我会收到此错误,那就太好了。谢谢

//AS.h

#ifndef AS_H
#define AS_H

class AS {
private:
    enum class state_region;

public:

    int determine_FDI(state_region selected_state_region);
};

#endif



/////////AS.cpp
        #include "AS.h"

enum class state_region {ACT};

int AS::determine_FDI(state_region selected_state_region) {
    int FDI;

    switch (selected_state_region) {
    case ACT:
        FDI = 100;
        break;
}
}

最佳答案

C++11中引入的“枚举类”也称为“作用域枚举”。

这清楚地突出了与“枚举”的区别,枚举值现在存在于专用范围内。

您需要像这样将范围添加到您的“案例”中:

case state_region::ACT:

代替

case ACT:

最后一行是在您当前的范围内寻找 ACT 标识符,但找不到它,因此出现错误。

关于C++开关枚举错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36401298/

相关文章:

带有 XML Bean 的 Java 枚举?

c++ - 以模板化函数作为参数的 STL 算法

c# - 如何在 NET 3.5 中尝试解析枚举值?

c++ - 如何将对象放置在结构中

c++ - 我的 WlanRegisterNotification 回调仅在回调为静态时有效

c++ - 按类型检索可变参数类的给定成员

c++ - 从模板模板方法参数中获取类型

c# - 将字节中的位解析为枚举

c++ - 容器列表,我在 for 循环中出错

c++ - 如何将 IDirect3DSurface9 或 LPD3DXBUFFER 以 JPG 格式保存到内存