如何解决更喜欢哪个?枚举类还是嵌套的未命名枚举类型?
enum Color1 { red,blue,green }; // ok
// enum Color2 { red,green }; // error,enum conflicts
struct Color3
{
enum { red,green }; // ok,no conflicts
};
enum class Color4 { red,no conflicts
-
Color1
和Color2
都是弱类型。 -
Color3
和Color4
都是强类型。
我的问题是:
1. Color3
和 Color4
之间有什么区别吗?
2.更喜欢哪个? Color3
还是 Color4
?为什么?
解决方法
Color3
和 Color4
都是强类型
没有。试试这个:
int x = Color3::red; // ok
int y = Color4::red; // error: cannot convert from 'Color4' to 'int'
遗留枚举可隐式转换为整数,但 enum class
是它自己的类型。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。