首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C++枚举类型enum与enum class

参考链接: C++枚举 文章目录  一.关于枚举类型二.枚举类型enum的使用三.枚举类型enum class的使用 一.关于枚举类型   1. 什么是枚举类型? ...所谓”枚举”是指将变量的值一一列举出来,变量的值只能在列举出来的值的范围内。在C++中,枚举类型分为不限定作用域(enum)和限定作用域(enum class)。   ...enum与class enum区别在于是否限定其作用域。C语言规定,枚举类型(enum)的成员的可见范围被提升至该枚举类型所在的作用域内。...这被认为有可能污染了外部的作用域,为此,C++11引入了枚举类(enum class)解决此问题。 ...这便体现C++11引入枚举类(enum class)的重要性,enum class能够有效对枚举作用域进行限定,避免了枚举成员的重定义。

4.9K41
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【C语言】枚举类型(enum)

    说得抽象一点的话,就是在一个有限的集合中,将这个集合里面的值都一一列举出来,而这个集合就属于枚举类型。 2....枚举类型的声明 在讲完枚举的含义之后,我们就来认识一下,在C语言中是如何声明一个枚举类型的。...以上定义的enum Day,enum Sex,enum Color都是枚举类型。 {}里面的值就是枚举类型可能取值,也叫做枚举常量。 这些可能的取值都是有值的,默认是从0开始,依次递增1。...枚举类型的使用 enum Color { RED, GREEN, BLUE }; enum Color clr = GREEN;//使用枚举常量给枚举变量赋值 注意:一旦枚举常量的值确定下来之后...在C语言中时允许的,但在C++中时不行的,C++对于类型的检查是比较严格的。

    36010

    c++枚举类型enum输出_python中的枚举

    Enum枚举:枚举是一组命名整型常量,枚举类型是使用 enum 关键字声明的。...枚举是值类型,数据直接存储在栈中,而不是使用引用和真实数据的隔离方式来存储,其包含自己的值,且不能被继承或者传递继承,枚举中每个元素的基础类型是 int。可以使用冒号指定另一种整数值类型。...1. enum_name 指定枚举的类型名称。...默认情况下,第一个枚举符号的值是 0; 举例说明: class Program//类名 { enum Sss//枚举名 { //枚举内容,用逗号进行隔开的列表 吃饭, 睡觉, 打豆豆, 打游戏.../value is 1 } 如果enum枚举中的部分成员定义了值,而部分没有;那么没有定义值的成员还是会按照上一个成员的值来递增赋值: 例如: enum Sss { 吃饭=0, //value

    1.5K40

    开发中巧用Enum枚举类型

    在实际开发中,在数据库表设计中,我们往往习惯于用一个Int类型的State字段去表示数据的状态,这个字段很方便去表示这条数据的状态,但是又不愿意去建一张这个State字段的外键表去解释状态。...(这一类型表状态的字段可能还会有很多,这里只是举个例) 我们一般会把这个State字段当成一个约定,去在项目中应用(比如:0:启用,1:禁用) 在后台管理或其它地方显示Int类型对应的实际状态时,再到公共类中去写一个方法...但是我习惯于用一个Enum枚举去规范数据库去所有的State字段,Enum的使用,也更利于开发,可以分别对枚举注释,约定可以呈现在开发人员眼前,而不是直接凭空约定。下面分享一下我对Enum类的使用。...第三步:对所有Enum写一些应用方法 #region##获得Enum类型description /// /// 获得Enum类型description.../ 创建人:Porschev /// 创建时间:2011-7-19 /// ///枚举的类型

    91970

    C#中Enum用法小结

    enums枚举是值类型,数据直接存储在栈中,而不是使用引用和真实数据的隔离方式来存储。 (1)默认情况下,枚举中的第一个变量被赋值为0,其他的变量的值按定义的顺序来递增(0,12,3...)...= 0, Yellow = 1, Red = 2 } (2)enum枚举类型的变量的名字不能相同,但是值可以相同,例如: enum TrafficLight { Green...枚举(enum type)通常用来表示一组常量。由于枚举是强类型的,这在编程中给我们提供了极大的方便。 2....在给枚举类型的实例赋值时,VS.NET IDE会通过IntelliSense弹出一个包含可接受值的列表框,减少了按键次数,并能够让我们回忆起可能的值 枚举在软件开发中的使用场景 在数据库设计人员表(person...这个方法带3个参数,第一个参数是要使用的枚举类型。其语法是关键字typeof后跟放在括号中的枚举类名。typeof运算符将在第5章详细论述。

    4K40

    C++一分钟之-C++中的枚举类型(enum class)

    在C++编程中,枚举类型是一种定义常量集合的方式,用于提升代码的可读性和维护性。...自从C++11引入了enum class(也称为强枚举类型或scoped enumeration),它在原有枚举类型的基础上增加了作用域限制和类型安全,从而减少了命名冲突和类型混淆的风险。...四、总结enum class 是C++中一种强大的类型安全枚举方式,它通过引入作用域限制和类型安全机制,显著提升了代码的安全性和清晰度。...正确使用enum class不仅可以避免命名冲突和类型混淆,还能使代码更加易于理解和维护。掌握其常见问题和易错点,结合高效使用技巧,能够帮助开发者编写出更高质量的C++代码。...在实际应用中,应根据具体需求灵活选择枚举成员的定义、底层类型以及使用场景,充分利用这一特性带来的优势。我正在参与2024腾讯技术创作特训营最新征文,快来和我瓜分大奖!

    2.1K20

    MySQL中ENUM类型学习--MySql语法

    ENUM是一个字符串对象,其值来自表创建时在列规定中显式枚举的一列值。...每个枚举值有一个索引: · 来自列规定的允许的值列中的值从1开始编号。 · 空字符串错误值的索引值是0。...当创建表时,ENUM成员值的尾部空格将自动被删除。 当检索时,保存在ENUM列的值使用列定义中所使用的大小写来显示。请注意可以为ENUM列分配字符集和 校对规则。...例如,下面的列含有字符串值'0'、'1'和'2'的枚举成员,但数值索引值为1、2和3: numbers ENUM('0','1','2') 根据枚举成员在列定义中列出的顺序对ENUM值进行排序。...如果你想要确定一个ENUM列的所有可能的值,使用SHOW COLUMNS FROM tbl_name LIKE enum_col,并解析输出中第2列的ENUM定义。

    1.4K20

    如何处理PHP代码中的枚举类型enum?

    然后我们在代码中引用符号名。因为我们定义了一次并多次使用它,所以搜索它以及以后重命名或更改值会更容易。 这就是为什么看到类似于下面的代码并不罕见. 的集合,每一个枚举都定义了一种新类型。这个类型,和它的值一样,可以包含任意属于该枚举的元素。 在上面的例子中,枚举借助于常量,每一个常量的值都是一个成员。...注意,这样做的话,我们只能在常量包含的类型中取值。因此,我们在写这些值的时候不会有类型提示,不知道详细的枚举类型。 来看一个简短的例子, 但我们假定例子中有更多的代码 名和创建表现这些元素的对象的库的常量. 还有一些情况我们需要谨记,用 serialize/deserialize 在其中创建自定义对象 ....接下来,我们将枚举YesNo定义为抽象,并扩展\Zlikavac32\Enum\Enum并定义一个静态方法enumerate。 然后,在enumerate方法中,我们列出将被用来表示它们的元素名称。

    1.5K30

    java枚举类型enum的使用

    最近跟同事讨论问题的时候,突然同事提到我们为什么java 中定义的常量值不采用enmu 枚举类型,而采用public final static 类型来定义呢?...Java 中的枚举类型采用关键字enum 来定义,从jdk1.5才有的新类型,所有的枚举类型都是继承自Enum 类型。...要了解枚举类型,建议大家先打开jdk 中的Enum类简单读一下,这个类里面定义了很多protected 方法,比如构造函数,如果要使用这些方法我们可以把枚举类型定义到当前类中。...首先给Light 枚举类型增加构造方法,然后每个枚举类型的值通过构造函数传入对应的参数,同时覆写toString 方法,在该方法中返回从构造函数中传入的参数,改造后的代码如下: public enum...enum 要求其成员都是唯一的,但是enum 中不能删除添加元素。 7. EnumMap 的key 是enum ,value 是任何其他Object 对象。 8.

    1.2K100

    Java 枚举类型enum 的使用

    Java 枚举类型enum 的使用 最近跟同事讨论问题的时候,突然同事提到我们为什么java 中定义的常量值不采用enmu 枚举类型,而采用public final static 类型来定义呢?...Java 中的枚举类型采用关键字enum 来定义,从jdk1.5才有的新类型,所有的枚举类型都是继承自Enum 类型。...要了解枚举类型,建议大家先打开jdk 中的Enum 类简单读一下,这个类里面定义了很多protected 方法,比如构造函数,如果要使用这些方法我们可以把枚举类型定义到当前类中。...首先给Light 枚举类型增加构造方法,然后每个枚举类型的值通过构造函数传入对应的参数,同时覆写toString 方法,在该方法中返回从构造函数中传入的参数,改造后的代码如下: public enum...enum 要求其成员都是唯一的,但是enum 中不能删除添加元素。 7.    EnumMap 的key 是enum ,value 是任何其他Object 对象。 8.

    1.3K91

    mysql中的enum是什么类型_数据库枚举类型是什么

    大家好,又见面了,我是你们的朋友全栈君。 为什么使用枚举 限定值的取值范围,比如性别(男,女,未知)等。...枚举类型使用陷阱 超级不推荐在mysql中设置某一字段类型为enum,但是存的值为数字,比如‘0’,‘1’,‘2’; 解释1:你会混淆,因为enum可以通过角标取值,但它的角标是从1开始,对于不熟悉这个字段的人这里会出错...解释2:enum类型的字段对于0与‘0’有非常大的区别,如果你是用0当角标做操作,因它没有这个角标,所要会报错;如果你使用‘0’这个值去取枚举值,并做插入操作,你会发现它竟然会成功,但是插入的结果是一个...“空”(不是null) 解释3:enum类型对于php等弱语言类型的支持很差,弱语言类型打引号和不打引号的值可能是同一类型,但是对于mysql中enum类型的字段来说,那就不一定是一回事了 结论:总之,...不要拿mysql的enum类型取存一些数字;如果你一定要使用这个字段去存数字,请把这个字段定义为int,然后在java代码中使用枚举类做一个对于这个字段值范围的一个限定!

    4.3K20

    c++11:枚举类型(enum)的前向声明(forward declaration)

    在C++11之前,C++标准是不支持枚举类型的前向声明的。...我说出这个结论,肯定有用msvc的童鞋不愿意了:口胡,MSVC明明就可以对枚举类型前向声明,下面这样的前向声明在MSVC下好好的,没有任何问题。...因为C++98标准中没有支持枚举类型前向声明,所以就不能保证上面的写法对任何编译器都行。...为什么枚举类型不能被前向声明呢? 因为编译器无法知道枚举变量所需的存储空间。 在编译期,C ++编译器要为变量保留存储空间。...在C++11中通过下面的语法指定了变量存储空间大小,就可以支持前向声明了: enum E : unsigned int ; 参考资料: 《Enum Forward Declaration》 https

    4.5K20

    c语言枚举类型enum例子_枚举是什么意思

    在实际的编程应用中,有的变量只有几种可能的取值,譬如说一个星期的七种可能,性别的两种可能等等。C语言为这种类型的变量的定义提供了enum关键字。...要使用枚举类型的变量,首先需要先定义一个枚举类型名,然后再声明该变量是枚举类型的 ---- 例1: enum WEEKDAY{ \\该语句定义了一个枚举类型 MONDAY = 1,...在没有显式说明的情况下,枚举类型中的第一个枚举常量的值为0,第二个为1,以此类推。...同一枚举类型中的不同的枚举常量可以具有相同的值 枚举类型为建立常量值与标识符之间的关联提供了一种便利的方式。...相对于#define语句来说,它的优势在于常量值可以自动生成 尽管可以声明枚举类型的变量,但编译器不检查这种类型变量中存储的值是否为该枚举类型中的有效值,不过,枚举类型的变量提供这种检查 注意: 不能对枚举常量进行赋值操作

    1.1K20
    领券