不确定如何在头文件中实现可访问的枚举?

时间:2014-07-09 17:35:57

标签: c++ enums

在头文件中,我有一些基本上像这样的东西

#ifndef blah
#define blah

enum DataType
{
    TextData,
    IntData

};


#endif

在另一个文件中我有

#include "previousheaderdefinedabove"

int main(int argc, char *argv[])
{
    std::cout << DataType::TextData;


    return 1;
}

但是,当我尝试编译时,我得到了

main.cpp:13:18: error: expected a class or namespace
    std::cout << DataType::TextData;

不确定我做错了什么,非常感谢任何帮助!我已经看到枚举被用作课程,但是有没有理由说明这个名称不够?

1 个答案:

答案 0 :(得分:0)

枚举既不是命名空间也不是类;其值与定义的范围相同。在上面的示例中,枚举值位于全局命名空间中。

这意味着,在main中,你应该有

std::cout << TextData;

而不是

std::cout << DataType::TextData;