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

Not sure how to implement accessible enum in header file?

本文关键字:实现 访问 枚举 文件 不确定      更新时间:2023-10-16

在头文件中有这样的内容

#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;

不知道我做错了什么,任何帮助是非常感激的!我见过枚举被用作类,但是否有理由认为名称空间不够用呢?

该enum既不是名称空间,也不是类;它的值与定义的作用域相同。在上面的示例中,枚举值位于全局命名空间中。

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

std::cout << TextData;

代替

std::cout << DataType::TextData;