C++之枚举类

1. 枚举类定义

语法形式

enum class 枚举类型名: 底层类型 {枚举值列表}; 

如果不指定底层类型,默认为int

例:

enum class Type { General, Light, Medium, Heavy};
enum class Type: char { General, Light, Medium, Heavy};
enum class Category { General=1, Pistol, MachineGun, Cannon};

2.枚举类的优势

2.1 强作用域,其作用域限制在枚举类中:

例: 使用Type的枚举值General: Type::General

2.2 转换限制,枚举类对象不可以与整型隐式地互相转换。

2.3 可以指定底层类型

例: enum class Type: char { General, Light, Medium, Heavy};

枚举类举例:

#include<iostream>
using namespace std;
enum class Side{ Right, Left };   
enum class Thing{ Wrong, Right };  //都有Right,但是不冲突

int main()
{
	Side s = Side::Right;
	Thing w = Thing::Wrong;
	cout << (s == w) << endl;  //尽管s和w都是整型,但编译错误,因为无法直接比较不同枚举类
	return 0;
}
C++之枚举类C++之枚举类 北木. 发布了250 篇原创文章 · 获赞 27 · 访问量 2万+ 私信 关注
上一篇:mysql新建数据库字符集与排序规则的选择


下一篇:Python 自动换行