我在使用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;

我收到的错误是:



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

最佳答案

除非使用2011年修订版C++中引入的enum class,否则枚举名称将注入(inject)到封闭的 namespace 中。如果使用简单的enum,则只需使用范围限定名称即可:

gcn::Graphics::CENTER

10-08 11:39