【发布时间】:2010-07-07 22:34:14
【问题描述】:
在标题中我有这样的设置
namespace NS {
typedef enum { GOOD, BAD, UGLY }enum_thing;
class Thing {
void thing(enum_thing elem);
}
}
当然还有另一个与该标题一起使用的 cpp 文件。然后我有一个包含 main() 的线程 cpp 文件。在这个 cpp 文件中,我使用该枚举传递给方法 thing()。
using namespace NS;
int main() {
Thing t();
t.thing(BAD);
}
当然,我从 G++ 中得到其他错误,说 BAD 没有被声明。有关如何克服此错误的任何帮助?
【问题讨论】:
-
应该是
Thing t;而不是Thing t() -
在方法之前缺少
public:,在类声明的末尾缺少;,在关闭}之后。 -
如果你完全限定枚举怎么办:
NS::BAD。较旧的编译器不喜欢这个。在这种情况下,不需要 C++ 中的类型定义。这里一个匿名枚举被 typedef 了。
标签: c++ enums namespaces