我的问题的简化模型如下。我想要做的就是在 main() 中使用 degreeChecker() 函数。 degreeChecker() 函数采用枚举“DegreeProgram”作为其类型。此枚举在其自己的类中定义,后续类继承该类。但问题是 main() 中的函数一直将任何枚举参数视为“未定义”。为什么会发生这种情况,我该如何解决?
#include <iostream>
using namespace std;
class Degree {
public:
enum DegreeProgram { SECURITY, NETWORK, SOFTWARE };
};
class UseEnum : Degree {
public:
bool DegreeChecker(DegreeProgram degreeProgram);
};
bool UseEnum::DegreeChecker(DegreeProgram degreeProgram) {
if (degreeProgram == SOFTWARE) {
return true;
}
}
int main()
{
UseEnum NewDegree;
NewDegree.DegreeChecker(SOFTWARE); **//error: identifier "SOFTWARE" is undefined -- why?**
return 0;
}
答案 0 :(得分:3)
符号的作用域是 Degree
类,因此您需要指定它才能使用它:
NewDegree.DegreeChecker(Degree::SOFTWARE);
答案 1 :(得分:3)
枚举是 Degree
类的成员,因此需要对其进行限定。
试试
NewDegree.DegreeChecker(Degree::SOFTWARE);