代码之家  ›  专栏  ›  技术社区  ›  vico

在命名空间中使用枚举

  •  0
  • vico  · 技术社区  · 7 年前

    我正在我的命名空间中使用枚举 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 回复  |  直到 7 年前
        1
  •  4
  •   Drew Dormann    7 年前

    该符号的正确名称是

    Statusss::Ok
    

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