C++ 错误:“enumElement”未在此作用域中声明
我写了以下小脚本:C++ 错误:“enumElement”未在此作用域中声明,c++,enums,C++,Enums,我写了以下小脚本: #include <string> #include <iostream> #include <cstdlib> using namespace std; int main() { enum class Day {sunday, monday, thuesday, wednesday, thursday, friday, saturday}; Day unusedDay, today = sunday; } 但这是我的枚举
#include <string>
#include <iostream>
#include <cstdlib>
using namespace std;
int main() {
enum class Day {sunday, monday, thuesday, wednesday, thursday, friday, saturday};
Day unusedDay, today = sunday;
}
但这是我的枚举类。为什么不宣布星期天?我怎样才能改变这一点
感谢您的回复:写
Day unusedDay, today = Day::sunday;
枚举数在枚举的范围内。Write
Day unusedDay, today = Day::sunday;
枚举数在枚举范围内。您将枚举与枚举类混淆。假设您的代码是:
enum Day {sunday, monday, thuesday, wednesday, thursday, friday, saturday};
Day unusedDay, today = sunday;
然后编译上面的代码,因为普通枚举具有全局可见的值,所以您可以像Day unusedDay、today=sunday;一样访问它们;。对于枚举类,规则略有不同。为了使示例正常工作,您需要编写如下代码:
enum Day {sunday, monday, thuesday, wednesday, thursday, friday, saturday};
Day unusedDay, today = Day::sunday;
如果查看enum与enum类的文档,您会看到:
枚举
声明其基础类型不固定的非范围枚举类型-
注意这里使用了unscoped一词,意思是变量仅与它的名称一起可用
枚举类
声明一个作用域枚举类型,其基础类型为int。关键字class和struct完全等效
如图所示,枚举类的作用域是有限的,并且只能作为enumname::value访问
您将枚举与枚举类混淆。假设您的代码是:
enum Day {sunday, monday, thuesday, wednesday, thursday, friday, saturday};
Day unusedDay, today = sunday;
然后编译上面的代码,因为普通枚举具有全局可见的值,所以您可以像Day unusedDay、today=sunday;一样访问它们;。对于枚举类,规则略有不同。为了使示例正常工作,您需要编写如下代码:
enum Day {sunday, monday, thuesday, wednesday, thursday, friday, saturday};
Day unusedDay, today = Day::sunday;
如果查看enum与enum类的文档,您会看到:
枚举
声明其基础类型不固定的非范围枚举类型-
注意这里使用了unscoped一词,意思是变量仅与它的名称一起可用
枚举类
声明一个作用域枚举类型,其基础类型为int。关键字class和struct完全等效
如图所示,枚举类的作用域是有限的,并且只能作为enumname::value访问
sunday不能像那样访问是首先使用enum类的一半。请参阅。@mep,如果您发现任何答案正确,请单击答案旁边的灰色复选标记图标,在向下投票箭头下,将其标记为正确,如果答案正确,则它应该变为绿色。如果无法访问,则这是首先使用enum类的一半。请参见。@mep,如果您发现任何答案正确,请单击答案旁边的向下投票箭头下的灰色复选标记图标,将其标记为正确,如果答案正确,它应该变成绿色