作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
在下文中,我不知道我是否将 C# 中的枚举与 C++ 混淆了,但是 我认为您只能使用 Forms::shape
访问枚举中的枚举器,这实际上会出错。
int main()
{
enum Forms {shape, sphere, cylinder, polygon};
Forms form1 = Forms::shape; // error
Forms form2 = shape; // ok
}
为什么 shape
允许在没有范围运算符的情况下在枚举之外访问,我如何防止这种行为?
最佳答案
嗯,因为枚举不构成声明范围。这就是它在 C++ 中的方式。您想将这些枚举常量封装在专用范围内,请自己创建一个:使用包装类或命名空间。
即将推出的 C++ 标准将引入新的枚举类型,它会产生自己的作用域。
关于c++ - 普查员的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7238042/
我是一名优秀的程序员,十分优秀!