Sum*_*din 0 c++ enums namespaces
在标题中我有这样的设置
namespace NS {
typedef enum { GOOD, BAD, UGLY }enum_thing;
class Thing {
void thing(enum_thing elem);
}
}
Run Code Online (Sandbox Code Playgroud)
当然还有另一个与该标题一起使用的cpp文件.然后我有一个包含main()的线程cpp文件.在这个cpp文件中,我使用该枚举传递给方法thing().
using namespace NS;
int main() {
Thing t();
t.thing(BAD);
}
Run Code Online (Sandbox Code Playgroud)
当然,我从G ++那里得到其他错误,说没有声明BAD.有关如何克服此错误的任何帮助?
在纠正示例代码中的许多小语法错误后,它编译对我来说很好.检查您是否正确拼写了名称.你能以NS :: BAD的身份访问枚举吗?也许你没有包括正确的标题?确保你
#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;
}
Run Code Online (Sandbox Code Playgroud)
自己测试一下:http: //codepad.org/Uw0XjOlF