1. enum定义
enum day
{
data1,
data2,
data3
};
enum class color
{
red=0,
yellow,
blue
}
2. 使用区别
1.访问方式
使用enum struct 和 enum class 只能通过域的方式访问其成员变量,不能直接访问内部变量。
例如:
color::red //ok
red //error
day::data1 //ok
data1 //ok
2.权限问题
使用enum struct 和 enum class 只能强制转换类型,且默认类型为int。
enum 可以进行隐式转换。
enum struct方式:
//强转
int res(static_cast(color::red)); //OK
color col(static_cast(1)); //OK
int te = color::red ///fail
enum方式:
int rs = day::data1 ///ok