C++中enum的使用

本文介绍了C++中的枚举类型,枚举是一种派生数据类型,用于限制变量的值只能在预定义的一系列常量中选取。枚举常量默认从0开始递增,但可以自定义值。枚举变量需要类型转换才能赋值,且枚举值不可在程序中改变。枚举在C++中可以不写关键字`enum`,但通常为了兼容C语言会保留。枚举常量可以用于比较和判断。
摘要由CSDN通过智能技术生成
               

 An enumeration is a distinct type whose value is restricted to a range of values, which may include several explicitly named constants ("enumerators"). The values of the constants are values of an integral type known as the underlying type of the enumeration.

 如果一个变量只有几种可能的值,可以定义为枚举(enumeration)类型。所谓”枚举”是指将变量的值一一列举出来,变量的值只能在列举出来的值的范围内。声明枚举类型用enum开头。

 枚举类型(enumeration)是C++中的一种派生数据类型,它是由用户定义的若干枚举常量的集合:

 (1)、枚举中每个成员(标识符)结束符是“,”,不是”;”,最后一个成员可省略”,”;

 (2)、初始化时可以赋负数,以后的标识符仍依次加1;

 (3)、枚举变量只能取枚举说明结构中的某个标识符常量;

 (4)、在外部,可以对枚举变量进行赋值,但,需要进行类型转换;

 (5)、未区分范围的枚举常数可以隐式转换为int,但是int不可以隐式转换为枚举值;

 (6)、将为枚举中的每个名称分配一个整数值,该值与其在枚举中的顺序相对应,默认情况下,为第一个值分配0,为下一个值分配1,依次类推,但可以显示设置枚举名称的值;

 (7)、为名称指定的值不必是唯一的,即各枚举常量的值可以重复;

 (8)、在C语言中,枚举类型名包括关键字enum,在C++中允许不写enum,一般也不写enum,但保留了C的用法;

 (9)、枚举元素作为常量,它们是有值的,C++编译按定义时的顺序对它们赋值为0,1,2,3,…。也可以在声明枚举类型时另行指定枚举元素的值;

 (10)、枚举值可以用来作判断比较;

 (11)、一个整数不能直接赋给一个枚举变量;

 (12)、once enumerators are defined, their value can't be changed in program.

 下面是从其他文章中copy的测试代码,详细内容介绍可以参考对应的reference:

 enum.hpp:

#ifndef FBC_MESSY_TEST_ENUM_HPP_#define FBC_MESSY_TEST_ENUM_HPP_#include <iostream>#include <string>typedef short                   int16_t;// reference: http://www.yolinux.com/TUTORIALS/C++Enum.htmlclass Day{
    publicenum Enum {  sunday = 0,  monday,  tuesday,  wednesday,  thursday,  friday,  saturday,  InvalidDay }; // Constructors Day(void); Day(Enum ee); explicit Day(const std::string& ss)// Overloaded assignment operators Day& operator = (const Day& cc); Day& operator = (const std::string& ss); Day& operator = (Enum ee); // Overloaded comparison operators bool operator<  (const Day& cc) constbool operator<  (Enum ee) constbool operator<= (const Day& cc) constbool operator<= (Enum ee) constbool operator>  (const Day& cc) constbool operator>  (Enum ee) constbool operator>= (const Day& cc) constbool operator>= (Enum ee) constbool operator== (const Day& cc) constbool operator== (const std::string& ss) constbool operator== (const Enum ee) constbool operator!= (const Day& cc) constbool operator!= (const std::string& ss) constbool operator!= (const Enum ee) const// Accessor functions
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值