小记C++中switch....case的误用
来源:互联网 发布:淘宝鼠标垫护腕 编辑:程序博客网 时间:2024/06/06 03:20
最近在看大话设计模式,书上的例子都是用C#写的,所以和C++还是有差别的地方,今天就遇到了switch.....case的差别。
对于switch(条件表达式)
{
case 标号1: .....
case 标号2: .....
..........
}
在C++中条件表达式的值只能是整形和枚举类型(整形包括char类型),而在C#中可以是字符串类型,这样就灵活方面了。
还有一个经常犯的错误就是在switch语句的作用域范围内定义新的变量或对象,而在编译时不会对该变量进行初始化导致编译错误。如果temp只定义,没有初始化的话则没有错误。
int main(){int s = 0;switch(s){case 1:int temp = 3;break;case 2:break;}return 0;}
在VS中编译错误提示: error C2360: “temp”的初始化操作由“case”标签跳过。因此应该用{}将temp变量定义到作用域中,或不进行初始化
switch(a){ case 1:int b;b = 6;cout<<b<<endl;break; case 2:a = 3;cout<<a<<endl;}
顺便再提一下枚举的使用方式:每个枚举都定义了一种新的类型。枚举类型的对象的初始化或赋值,只能通过其枚举成员或同一枚举类型的其他对象来进行。
enum Points{ A = 2, B, C = 5, D };Points point1 = A; //okPoints point2 = 3; //error,int类型的值不能用于初始化Points类型的实体Points point3 = point1; //ok
0 0
- 小记C++中switch....case的误用
- C++:在switch的case中定义变量的问题
- C语言中switch case语句的实现
- C语言中switch case语句的实现
- C语言中switch case的类型比较机制
- C语言中switch-case语句的使用
- switch 中case的注意
- C/C++中switch-case用法归纳
- C/C++中switch-case用法归纳
- switch中case...用法-c语言
- C语言中switch case语句的实现(switch case 和 else if 的比较、区别)
- 【弱弱的c#】switch-case
- ANSI C不完美的switch case
- C#--Switch Case语句的返回
- c#switch-case
- java switch中case可接受的类型
- Java 中switch-case的注意地方
- Java 中switch-case的注意地方
- 关于在虚拟机用调试ArcGIS runtime for android 2.0程序中遇到的问题
- 思科模拟器Boson NetSim 8.0破解
- 网站安全性:C#防SQL注入代码的实现方法
- 连接mysql时出现的各种异常问题
- j2se中如何写界面啊,求教各位大神
- 小记C++中switch....case的误用
- ubantu查看版本并更新源
- ping主机名原理与抓包分析
- 香格里拉古城起火千人扑救
- TFont 类的常用属性:
- 与flex for each相约的那些 痛苦的岁月
- iOS 总结 一
- 外企九年,我最终选择放弃——送给和我一样纠结毕业是读研,国企,外企等等的人们
- 在OpenCV中自适应确定canny算法的分割门限