最近我收到一个SO用户的评论(在另一个帐户上),Enum被用来创建类型而不是实例!我想反复检查一下社区的情况是否正确。据我所知,C++中有一个普通枚举( enum -Type)和Enum类.我的que只处理enum,没有在任何地方编写enum class,所以,我想,用户是在谈论Enum。那么,假设Enum-Type和Enum-Class都用于创建类型是安全的吗?(Enum-类型不安全,而反向类型对后者是正确的)。
而且,在下面的代码中,我还想知道创建example实例的需要是什么,以及它解决了什么目的,因为在步骤(1)中,a获取0和b获取1,那么,创建实例的必要性是什么?
hello编辑:(如果错误请更正)创建实例的重要性是,现在 只能取a或b,甚至不能取0.。
enum example {a, b} ; // create a type, example // (1)
example hello ; // create instance named hello, of type example // (2)发布于 2022-09-10 02:10:05
是的,enum和enum class都定义新类型(就像struct和class用于定义新类型一样)。是的,enum不是类型安全--例如,您可以直接比较两个无关的enum和enum的隐式转换为int。另一方面,enum class是类型安全的--您不能比较不相关的类型(不相关的enum class、es),也不存在隐式转换。
另请参阅:
https://stackoverflow.com/questions/73668821
复制相似问题