我在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样式枚举中(如您在此处显示的那样),枚举类型不属于范围。

09-05 23:09