访问在C ++类中声明的枚举

时间:2018-03-23 10:43:37

标签: c++ g++

我在一个类中声明一个枚举,然后尝试访问另一个类。这对vs2010来说非常合适,但它失败了g ++,错误“不是类或命名空间名称”

//Manager.h
class TestMgr
{
public:
        typedef enum
       {
                kError,
                kRun,
                kFly,
                kDefault = kRun
        }Mode;

};

主要功能

//main.cpp
#include"Manager.h"    
int main()
{

   TestMgr::Mode _mode = TestMgr::Mode::kDefault;

}

这给了我一个编译错误:'TestMgr :: Mode'不是类或命名空间

请指导。

编辑:我看到有一个类似的问题here,但是它讨论了一个全局声明的枚举,而不是在一个类中。

1 个答案:

答案 0 :(得分:0)

那编译给我:

class TestMgr
{
public:
        typedef enum Mode
       {
                kError,
                kRun,
                kFly,
                kGDefault = kRun
        }Mode;
};

int main()
{
   TestMgr::Mode _mode = TestMgr::Mode::kGDefault;
}