我在code的命名空间中使用枚举
namespace Statusss
{
enum Statuss
{
Out = -1,
Ok = 0,
Busy = 1,
Error = 2,
Nor = 3
};
}
void tst()
{
int status =0;
Statusss::Statuss mystatus = static_cast<Statusss::Statuss>(status);
if (mystatus == (Statusss::Statuss::Ok))
{
std::cout << "Ok\n";
} else std::cout << "Other\n";
}
它在简单的控制台应用程序中运行良好。但是,如果我将此代码放在GUI Qt小部件应用程序中,则会出错:
'Statusss::Statuss' is not a class or namespace
if (mystatus == (Statusss::Statuss::Ok))
^
为什么我要这个?
最佳答案
该符号的正确名称是
Statusss::Ok
在传统的C样式枚举中(如您在此处显示的那样),枚举类型不属于范围。