2

我有以下头文件:

namespace First
{
    namespace Second
    {
        class Limit
        {
            public:
                enum Status
                {
                    GOOD,
                    BAD
                };
        }
    }
}

由于它是专有的,我已经更改了名称,只留下了相关信息。

在我自己的班级里,我...

First::Second::Limit::Status limit_status = First::Second::Limit::Status::OK;

但我得到一个错误:错误:class First::Second::Limit::Status is not a class or namespace

我能够声明该枚举的变量,但不能将其设置为任何值。我该如何解决?

4

2 回答 2

4
First::Second::Limit::Status limit_status = First::Second::Limit::GOOD;

你不需要那个Status位。把它想象成在里面定义了几个const ints Limit,你不会说Limit::int::GOOD

于 2012-04-23T16:37:37.447 回答
4

如果您有 C++11,请使用enum class

namespace First
{
    namespace Second
    {
        class Limit
        {
            public:
                enum class Status
                {
                    GOOD,
                    BAD
                };
        }
    }
}

现在您可以Status用作范围。如果没有,您将不得不不包括该Status::部分。

于 2012-04-23T16:39:47.280 回答