[英]Why is my enum value “undefined” when using it as a parameter?
A simplified model of my problem is below.我的问题的简化 model 如下。 All I'm trying to do is use the DegreeChecker() function in main().
我要做的就是在 main() 中使用 DegreeChecker() function。 The DegreeChecker() function takes an enum, 'DegreeProgram', as its type.
DegreeChecker() function 将枚举“DegreeProgram”作为其类型。 This enum is defined in its own class, which subsequent classes inherit.
此枚举在其自己的 class 中定义,后续类继承该枚举。 But the problem is that the function in main() keeps treating any enum parameter as "undefined".
但问题是 main() 中的 function 一直将任何枚举参数视为“未定义”。 Why is this happening and how can I resolve this?
为什么会发生这种情况,我该如何解决?
#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;
}
The symbol is scoped to the Degree
class so you will need to specify that in order to use it:该符号的范围为
Degree
度数,因此您需要指定它才能使用它:
NewDegree.DegreeChecker(Degree::SOFTWARE);
The enum is a member of the Degree
class, so it needs to be qualified.枚举是
Degree
class的成员,所以需要合格。
Try尝试
NewDegree.DegreeChecker(Degree::SOFTWARE);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.