C++ 为什么我的枚举值在用作参数时“未定义”?
下面是我问题的简化模型。我所要做的就是在main中使用DegreeChecker函数。DegreeChecker函数将枚举“DegreeProgram”作为其类型。此枚举在其自己的类中定义,后续类继承该类。但问题是main中的函数一直将任何枚举参数视为未定义的。为什么会发生这种情况?我如何解决C++ 为什么我的枚举值在用作参数时“未定义”?,c++,enums,C++,Enums,下面是我问题的简化模型。我所要做的就是在main中使用DegreeChecker函数。DegreeChecker函数将枚举“DegreeProgram”作为其类型。此枚举在其自己的类中定义,后续类继承该类。但问题是main中的函数一直将任何枚举参数视为未定义的。为什么会发生这种情况?我如何解决 #include <iostream> using namespace std; class Degree { public: enum DegreeProgram { SECURI
#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;
}
符号的作用域为Degree类,因此您需要指定以下内容才能使用它: DegreeCheckerDegree::软件;
符号的作用域为Degree类,因此您需要指定以下内容才能使用它: DegreeCheckerDegree::软件;
枚举是Degree类的成员,因此需要对其进行限定 试一试
枚举是Degree类的成员,因此需要对其进行限定 试一试
软件确实是未定义的。你可能是指学位:SOFTWARE@IgorTandetnik嗯,那当然行。根据我的任务说明,我的印象是,参数必须仅取枚举值,但公平地说,我不会把它放在我的说明后面,因为它太不清楚了。软件确实是未定义的。你可能是指学位:SOFTWARE@IgorTandetnik嗯,那当然行。根据我的任务说明,我的印象是,参数必须仅取枚举值,但公平地说,我不会把它放在我的说明后面,让它变得如此不清楚。
NewDegree.DegreeChecker(Degree::SOFTWARE);