C++ Switch语句的作用域错误
当我执行这个switch语句时,我得到了以下错误:错误:“Ptr”未在此范围内声明。我不明白为什么会发生这种情况,因为我正在动态分配Ptr。如果删除大括号,则会出现错误:“Ptr”之前的声明为“(//类名)*Ptr”。我该如何解决这个问题?谢谢C++ Switch语句的作用域错误,c++,scope,switch-statement,declaration,C++,Scope,Switch Statement,Declaration,当我执行这个switch语句时,我得到了以下错误:错误:“Ptr”未在此范围内声明。我不明白为什么会发生这种情况,因为我正在动态分配Ptr。如果删除大括号,则会出现错误:“Ptr”之前的声明为“(//类名)*Ptr”。我该如何解决这个问题?谢谢 switch(i){ case 0:{ Class0* Ptr = new Class0; } case 1:{ Class1* Ptr = new Class1; break;
switch(i){
case 0:{
Class0* Ptr = new Class0;
}
case 1:{
Class1* Ptr = new Class1;
break;
}
case 2:{
Class2* Ptr = new Class2;
break;
}
case 3:{
Class3* Ptr = new Class3;
break;
}
case 4:{
Class4* Ptr = new Class4;
break;
}
case 5:{
Class5* Ptr = new Class5;
break;
}
}
myMap["key"] = Ptr;
这是一个常见的作用域错误
{
int j =1;
}
cout<<j<<endl;
switch(i){
case 0:{
Class0* Ptr = new Class0;
myMap["key"] = Ptr;
break;
}
case 1:{
Class1* Ptr = new Class1;
myMap["key"] = Ptr;
break;
}
case 2:{
Class2* Ptr = new Class2; myMap["key"] = Ptr;
break;
}
case 3:{
Class3* Ptr = new Class3; myMap["key"] = Ptr;
break;
}
case 4:{
Class4* Ptr = new Class4; myMap["key"] = Ptr;
break;
}
case 5:{
Class5* Ptr = new Class5; myMap["key"] = Ptr;
break;
}
}