gpt4 book ai didi

c++ - 具有某些相同值的枚举类型

转载 作者:太空狗 更新时间:2023-10-29 23:54:12 24 4
gpt4 key购买 nike

为什么在 C++ 中不允许在同一 block 中声明两个具有相同值的枚举类型?

enum math_students {A,B,C};
enum comp_students {D,E,A}; // illegal

最佳答案

C++03 enum 在它们的范围内没有更严格的类型检查。所以 math_students::Acomp_students::A 都可以简称为 A。这就是为什么它们不允许在同一范围内。

要克服这一点,您可以将它们包含在 namespaceclass 中。

namespace math_students {
enum { A, B, C };
}
namespace comp_students {
enum { D, E, A }; // ok
}

在 C++11 中,您可以使用 enum class(它具有更严格的类型检查;并且它们不会隐式转换为 int)。

enum class math_students {A,B,C};
enum class comp_students {D,E,A}; // ok

关于c++ - 具有某些相同值的枚举类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7398934/

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