在命名空间中使用枚举

时间:2018-05-21 16:31:53

标签: c++ qt

我在我的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))
                              ^

为什么我得到这个?

1 个答案:

答案 0 :(得分:4)

该符号的正确名称是

Statusss::Ok

在传统的C风格枚举中,就像你在这里展示的那样,枚举类型不是范围的一部分。