0
在頭文件中我有一些基本上是這樣的不知道如何在頭文件中實現可訪問的枚舉?
#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;
不知道我做錯了什麼,非常感謝任何幫助!我已經看到枚舉被用作類,但是爲什麼namespcae還不夠?
枚舉值不枚舉下作用域。枚舉值與枚舉定義的範圍相同。 –
爲了擴展Dark Falcon的說法,std :: cout << TextData;'將被編譯。 – dasblinkenlight
如果您想要這種行爲並且您的編譯器支持C++ 11功能,請使用['enum class'](http://en.cppreference.com/w/cpp/language/enum)。 – 101010