我有以下头文件:
namespace First
{
namespace Second
{
class Limit
{
public:
enum Status
{
GOOD,
BAD
};
}
}
}
由于它是专有的,我更改了名称,只留下了相关信息。
在我自己的班上,我有......
First :: Second :: Limit :: Status limit_status = First :: Second :: Limit :: Status :: OK;
但是我收到一个错误: 错误:类First :: Second :: Limit :: Status不是类或命名空间
我能够声明该枚举的变量,但不能将其设置为任何值。我该如何解决这个问题?
答案 0 :(得分:4)
First::Second::Limit::Status limit_status = First::Second::Limit::GOOD;
您不需要Status
位。可以将其视为在const int
内定义多个Limit
,您不会说Limit::int::GOOD
。
答案 1 :(得分:4)
如果你有C ++ 11,请使用enum class
:
namespace First
{
namespace Second
{
class Limit
{
public:
enum class Status
{
GOOD,
BAD
};
}
}
}
现在您可以使用Status
作为范围。如果没有,您将不得包含Status::
部分。