时间:2021-05-20
C++枚举类型enum表示枚举,通常用于定义个新类型的字符常量,比如enum {January,February,March}。枚举类型的作用域一般是整个文件或者类内。当枚举类型定义在文件开头时,则作用域是从定义位置开始往后(不包括函数内定义);当枚举类型在类内定义时,则作用域为整个类内。在类内的头文件定义和初始化枚举类型,当实例这个类的对象时,枚举类型不会占用空间,只是包含一个字符常量而已。
枚举类型的定义可以在整个文件夹,也可以在类内。当在整个文件夹时,所有枚举量不能有相同的。当在类内时,不同类的枚举常量可以相同,不影响。下面给出具体代码示例。
一、枚举类型定义在类内(用的是vs2013 IDE)
1.1新建一个控制台应用程序,然后在EnumTest.h,EnumTest.cpp,main.cpp中添加如下代码
EnumTest.h
#pragma oncetypedef unsigned long Item; class CEnumTest{public: CEnumTest(); ~CEnumTest(); const void show() const; //后面的const表示该函数不可更改类对象,也即是不能更改类对象的成员变量private: enum {One=1,Two=2,Three=3}; Item item[Three];};EnumTest.cpp
#include "EnumTest.h"#include <iostream> CEnumTest::CEnumTest(){} const void CEnumTest::show() const{ std::cout <<"this->Three=="<<this->Three<<std::endl;} CEnumTest::~CEnumTest(){}main.cpp
#include <iostream>#include "EnumTest.h" int main(){ CEnumTest *enumTest = new CEnumTest(); enumTest->show(); system("pause"); return true;}1.2输出结果如下
1.3总结
可以在类内用枚举定义多组字符常量,这些字符常量在类的头文件中申明和赋值;虽然这些字符常量被赋值了,但是却还是一个字符常量,而不是一个数值,一般枚举字符常量跟switch搭配使用。假如这些枚举字符常量被赋值给整形或者浮点型,则C++11新标准会自动转换为对应类型,编译器默认是用整形常量表示一个枚举类型字符常量的。
二、枚举类定义
枚举类的作用域同样是在定义的类内,但是枚枚举类是专门为枚举创建的类,也就是说,只能用于枚举。
2.1声明代码如下
enum class Data1{ First = 1, Second = 2, Third = 3 };enum class Data2{ First = 7, Second = 8, Fourth = 9 };2.2调用代码如下
#include <iostream>#include "EnumTest.h" enum class Data1{ First = 1, Second = 2, Third = 3 };enum class Data2{ First = 7, Second = 8, Fourth = 9 }; int main(){ CEnumTest *enumTest = new CEnumTest(); enumTest->show(); std::cout << "(int)Data1::First==" << (int)Data1::First << std::endl; //枚举类Data1可以直接用作用域解析运算符::调用对应枚举成员常量Data1::First std::cout << "(int)Data2::First==" << (int)Data2::First << std::endl; //枚举类Data2可以直接用作用域解析运算符::调用对应枚举成员常量Data2::First system("pause"); return true;}2.3输出结果如下
2.4总结
由上面结果可知,枚举类定义后,可以直接用作用域解析运算符::直接调用对应枚举类的成员常量Data1::First,可以当成一个常量来调用。
以前C语言枚举的常规调用就是在枚举类中去掉class就可以了,即下面代码
enum Data1{ First = 1, Second = 2, Third = 3 };其它用法跟上面两个基本一样,就不介绍了。
参考内容:
《C++ Primer Plus》(第6版)中文版 372-373页
以上就是C++枚举类型用法总结(枚举字符常量代替常量)的详细内容,更多关于C++ 枚举的资料请关注其它相关文章!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
枚举类型的定义:枚举类型(enumeration)是C++中的一种派生数据类型,它是由用户定义的若干枚举常量的集合。定义格式:枚举类型的定义格式为:enum{}
枚举常量与宏的区别主要有几点:1。枚举常量是实体中的一种,但宏不是实体;2。枚举常量属于常量,但宏不是常量;3。枚举常量具有类型,但宏没有类型,枚举变量具有与普
枚举枚举(enum)是定义一组命名常量的机制,用这种方式定义的常量被称作枚举常量注:枚举常量的数据类型是整数使用方法:下面我们以文本语音转换为例子,说明一下枚举
1.传统枚举类型的缺陷枚举类型是C/C++中用户自定义的构造类型,它是由用户定义的若干枚举常量的集合。枚举值对应整型数值,默认从0开始。比如定义一个描述性别的枚
常量是固定值,程序执行期间不会改变。常量可以是任何基本数据类型,比如整数常量、浮点常量、字符常量或者字符串常量,还有枚举常量。常量可以被当作常规的变量,只是它们