在头文件中,我有一些基本上像这样的东西
#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;
不确定我做错了什么,非常感谢任何帮助!我已经看到枚举被用作课程,但是有没有理由说明这个名称不够?
答案 0 :(得分:0)
枚举既不是命名空间也不是类;其值与定义的范围相同。在上面的示例中,枚举值位于全局命名空间中。
这意味着,在main中,你应该有
std::cout << TextData;
而不是
std::cout << DataType::TextData;