gpt4 book ai didi

c++ - 普查员的范围

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:32:34 25 4
gpt4 key购买 nike

在下文中,我不知道我是否将 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com