信誉好的徐州网站建设,利鑫做彩票网站,哪里网站备案,android基础入门教程C/C枚举类型#xff1a;
不限定作用域的枚举类型 关键字#xff1a;enum 声明枚举类型#xff0c;然后可以用枚举类型来定义变量(如同结构体)#xff1a; enum Color{white,black,yellow}; {注意分号} Color color_type; color_type 变量的值只限于枚举类型Color中的值
枚…C/C枚举类型
不限定作用域的枚举类型 关键字enum 声明枚举类型然后可以用枚举类型来定义变量(如同结构体) enum Color{white,black,yellow}; {注意分号} Color color_type; color_type 变量的值只限于枚举类型Color中的值
枚举类型中的元素称为枚举元素或者枚举常量
也可以不用声明枚举类型名直接定义枚举变量 enum{white,black,yellow}color_type;
注意 1枚举常量是常量不能在枚举常量列表之外的地方对枚举类型中的枚举常量赋值。 2每一个枚举常量都代表一个整数如果声明时没有给枚举常量赋值则默认从0开始往后逐渐加1。如果某个元素被指定值往后的又逐渐加1. eg: enum num{n1,n24,n3,n4,n510,n6}; 则n10,n35,n46,n611 。 3枚举元素不要重复重复就没有意义了。
4枚举类型如果在头文件的类中定义在源文件作为函数返回类型时必须用作用域运算符指定否则就是未定义。
5可以定义枚举类型的变量也可以用枚举元素给变量赋值。(HTTP请求方法获取)
枚举和switch
枚举虽然可以用在switch中语法不会保错但是因为枚举变量的值都是枚举类型所以switch中的所有枚举选项尽管值不相等但是类型相同都会比较成功而被执行。
所以同一个枚举常量的值放在一个switch中比较毫无意义 限定作用域的枚举类型
enum class/struct{}
链接
作用
1限定作用域防止命令冲突
2防止隐式类型转换
switch语法
其实不管限定作用域枚举还是不限定作用域枚举甚至普通数据类型只要成功匹配到目标结果如果不退出下面的结果都将匹配成功。
#include iostreamusing namespace std;enum class ELanguage {kCHINESE,kENGLISH,kKOREAN
};
enum color {whilte,black,gray
};int main() {switch (100) {case 10:cout 10 endl;case 100:cout 100 endl;case 1000:cout 1000 endl;default:break;}ELanguage language ELanguage::kCHINESE;switch (language) {case ELanguage::kCHINESE:std::cout chninese std::endl;case ELanguage::kENGLISH:std::cout english std::endl;case ELanguage::kKOREAN:std::cout korean std::endl;default:break;}color c1 whilte;switch (c1) {case whilte: cout whilte whilte endl;case black: cout black black endl;case gray: cout gray gray endl;default:break;}return 0;
}