我正在使用枚举制作一个简单的开关函数,但是我收到错误“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/