在标题中我有这样的设置
namespace NS {
typedef enum { GOOD, BAD, UGLY }enum_thing;
class Thing {
void thing(enum_thing elem);
}
}
当然还有与该 header 一起出现的另一个 cpp 文件。然后我有一个包含 main() 的线程 cpp 文件。在此 cpp 文件中,我使用该枚举传递给方法 thing()。
using namespace NS;
int main() {
Thing t();
t.thing(BAD);
}
当然,我从 G++ 得到其他错误,说 BAD 没有声明。关于如何克服此错误的任何帮助?
最佳答案
在更正示例代码中的许多小语法错误后,它对我来说编译得很好。检查您是否正确拼写了名称。你能以 NS::BAD 的形式访问枚举吗?也许您没有包含正确的 header ?确保你有
#include "FileWithEnum.h"
在顶部。
namespace NS {
typedef enum { GOOD, BAD, UGLY }enum_thing;
class Thing {
public:
void thing(enum_thing elem){}
};
}
using namespace NS;
int main() {
Thing t;
t.thing(BAD);
return 0;
}
自己测试一下: http://codepad.org/Uw0XjOlF
关于c++ - 访问命名空间中的枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3199429/