Ben*_*den 2 c++ enums visibility
我有一个看起来像这样的课程:
namespace R
{
class R_Class
{
enum R_Enum
{
R_val1,
R_val2,
R_val3
}
private:
// some private stuff
public:
// some public stuff
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用自动化测试工具进行单元测试.编译器声称我的测试工具无法访问R :: R_Class :: R_Enum类型.
我可以轻松访问类似定义的类中的值:
namespace S
{
class S_Class
{
public:
enum S_Enum
{
S_val1,
S_val2,
S_val3
}
}
private:
// some private stuff
public:
// some public stuff
}
Run Code Online (Sandbox Code Playgroud)
是否需要为C++中的枚举提供明确的可见性指令?如果没有给出,他们默认为私人吗?保护?
enums遵循类中的可见性,就像属性,方法,嵌套类或其他任何东西一样.您需要将其public用于外部可见性.
这样,类可以拥有自己的私有方法使用的私有枚举,而不会将enum值暴露给外部世界.