C\C++_类型_枚举体

1. 代码示例

#include <iostream>
using namespace std;

//!	1.C++11新版限定作用域的枚举体,增加关键字class,可以避免small,big相同的符号冲突
enum class eggs{ small, big };
enum class he{ small, big };

//! 2.C++11 可以指定枚举体底层类型,底层类型为short
//enum class : short Workday{ Monday, Tuesday };

//! 老版本枚举:非限定作用域的枚举
enum week
{
	monday
}

int main()
{
	//! 3.赋值
	eggs e = eggs::small;

	//! 4. C++11 类型转换增加安全性,避免隐式转换,可以显示转换
	int a = int(e);		
	//int a = eggs::small; //< C++11 错误,限定作用域的枚举无法隐式转换;
	int b = week::monday;	//< 老版本,正确,非限定作用域的枚举可以隐式转换
	

	cin.get();
	return EXIT_SUCCESS;
}

2. 枚举类型的前置声明

C++ 11 中,可以提前声明enum。enum的前置声明(无论隐式地还是显示地)必须指定其成员的大小:

enum intValues : unsigned long long;	//< 不限定作用域的,必须制定成员类型
enum class open_modes;	//<	限定作用域的枚举类型可以使用默认成员类型int

参考书籍

C++ Primer Plus(第6版)——10.6.2 作用域内枚举(c++11)
C++ Primer (第5版)—— 19.3 枚举类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值