switch语句case内声明对象
来源:互联网 发布:诺维斯基10年数据 编辑:程序博客网 时间:2024/05/19 04:02
今天本来想使用switch语句来实现不同情况下执行相对应的代码,在每个case内都需要声明不同的类的对象,结果出现
switch(work_state_ptr->cutter_type){case 1:boost::shared_ptr<ocl::CylCutter> cutter1(new ocl::CylCutter(work_state_ptr->cutter_diameter,work_state_ptr->cutter_Lc)); GeneratePathforCutter(*(cutter1.get()),stl_sf);break;case 2:boost::shared_ptr<ocl::BallCutter> cutter2(new ocl::BallCutter(work_state_ptr->cutter_diameter,work_state_ptr->cutter_Lc));GeneratePathforCutter(*(cutter2.get()),stl_sf);break;case 3: boost::shared_ptr<ocl::BullCutter> cutter3(new ocl::BullCutter(work_state_ptr->cutter_diameter, work_state_ptr->cutter_radius,work_state_ptr->cutter_Lc));GeneratePathforCutter(*(cutter3.get()),stl_sf);break;case 4:boost::shared_ptr<ocl::ConeCutter> cutter4(new ocl::ConeCutter(work_state_ptr->cutter_diameter,work_state_ptr->cutter_B1,work_state_ptr->cutter_Lc));GeneratePathforCutter(*(cutter4.get()),stl_sf);break;default:break;}
错误:error C2360: “cutter1”的初始化操作由“case”标签跳过
分析原因:在case 可能没有被执行到时,对象就没有相应的初始化导致。
解决方法是:在每个case里面都加入大括号“{ }”,使每个对象都成为局部变量。
即:
switch(work_state_ptr->cutter_type){case 1:{ boost::shared_ptr<ocl::CylCutter> cutter1(new ocl::CylCutter(work_state_ptr->cutter_diamet er,work_state_ptr->cutter_Lc)); GeneratePathforCutter(*(cutter1.get()),stl_sf);break;}case 2:{boost::shared_ptr<ocl::BallCutter> cutter2(new ocl::BallCutter(work_state_ptr->cutter_diameter,work_state_ptr->cutter_Lc));GeneratePathforCutter(*(cutter2.get()),stl_sf);break;}case 3:{boost::shared_ptr<ocl::BullCutter> cutter3(new ocl::BullCutter(work_state_ptr->cutter_diameter,work_state_ptr->cutter_radius,work_state_ptr->cutter_Lc));GeneratePathforCutter(*(cutter3.get()),stl_sf);break;}case 4:{boost::shared_ptr<ocl::ConeCutter> cutter4(new ocl::ConeCutter(work_state_ptr->cutter_diameter,work_state_ptr->cutter_B1,work_state_ptr->cutter_Lc));GeneratePathforCutter(*(cutter4.get()),stl_sf);break;}default:break;}
0 0
- switch语句case内声明对象
- switch-case语句用法
- 看switch case 语句
- switch case 语句
- switch-case语句
- switch-case语句用法
- switch-case语句用法
- switch-case语句用法
- switch-case语句用法
- switch case 语句
- switch...case... 语句
- switch-case语句用法
- switch case 语句
- switch case 语句特征
- switch-case语句用法
- switch case语句
- switch-case语句
- switch case 语句
- Using WinHTTP as a Side-by-side Assembly
- Strange SQLAlchemy error message: TypeError: 'dict' object does not support indexing
- UDP传输:简易聊天室的搭建。。。
- Minimum Depth of Binary Tree LeetCode
- 观察者设计模式
- switch语句case内声明对象
- List的contains方法
- mysql创建用户
- 我和opencv 2
- 好用的负margin
- 解决tabhost中的子Acitivity无法调用service的问题
- Mahout基于余弦相似度的评估
- myeclipse中提交svn时过滤.project .settings .classpath等资源文件设置
- Gradle的使用