switch(searchWay){
case 2:
string bn;
cin >> bn;
break;
}switch报错,error C2360: “bn”的初始化操作由“case”标签跳过。
解决方式:
如果要在case里面定义变量,需要用括号括起来{}。
花括号的作用是限制作用域,加花括号后把string作用域限制在一个case中,防止在switch外用到此变量时这个case没有执行到。
switch(searchWay){
case 2: {
string bn;
cin >> bn;
break;
}
}
运行成功。
本文介绍了一个 C++ 中关于 switch-case 结构内定义局部变量的问题及解决方案。当在 case 子句中定义变量时,若该变量未在所有路径中被初始化,则会导致编译错误。文章给出了通过使用花括号来限制变量作用域的方法,解决了这一问题。
1800

被折叠的 条评论
为什么被折叠?



