首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我们在c++中使用enum (而不是enum类)创建类型实例时,意味着什么?

当我们在c++中使用enum (而不是enum类)创建类型实例时,意味着什么?
EN

Stack Overflow用户
提问于 2022-09-10 02:01:34
回答 1查看 46关注 0票数 0

最近我收到一个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.

代码语言:javascript
复制
enum example {a, b} ; // create a type, example // (1)
example hello ; // create instance named hello, of type example // (2)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-10 02:10:05

是的,enumenum class都定义新类型(就像structclass用于定义新类型一样)。是的,enum不是类型安全--例如,您可以直接比较两个无关的enumenum的隐式转换为int。另一方面,enum class是类型安全的--您不能比较不相关的类型(不相关的enum class、es),也不存在隐式转换。

另请参阅:

https://en.cppreference.com/w/cpp/language/enum

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73668821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档