访问位于名称空间内的类中的枚举

时间:2013-11-10 00:30:42

标签: c++ class enums namespaces scope

我使用g ++作为编译器在Ubuntu 12.04上,我遇到了一个问题,试图使用Alignment枚举来适当地放置我的GUI对象。以下是guichan的graphics.hpp中的相关代码:

...
00053 namespace gcn
00054 {
00055     class Color;
00056     class Font;
00057     class Image;
00058 
00094     class GCN_CORE_DECLSPEC Graphics
00095     {
00096     public:
00100         enum Alignment
00101         {
00102             LEFT = 0,
00103             CENTER,
00104             RIGHT
00105         };
...

以下是我用来尝试访问CENTER的行。

gcn::Graphics::Alignment _align = gcn::Graphics::Alignment::CENTER;

我收到的错误是:

  

错误:'gcn :: Graphics :: Alignment'不是类或命名空间

我希望有人可以帮助我,我到处寻找类似的问题,但无济于事。

1 个答案:

答案 0 :(得分:2)

枚举名称被注入到封闭的命名空间中,除非您使用在2011年版本的C ++中引入的enum class。如果使用普通enum,则只需使用封闭范围限定名称:

gcn::Graphics::CENTER