相关疑难解决方法(0)

为什么不能在switch语句中声明变量?

我一直想知道这一点 - 为什么你不能在switch语句中的case标签之后声明变量?在C++中,您可以在任何地方声明变量(并且声明它们接近第一次使用显然是一件好事)但是以下仍然不起作用:

switch (val)  
{  
case VAL:  
  // This won't work
  int newVal = 42;  
  break;
case ANOTHER_VAL:  
  ...
  break;
}  
Run Code Online (Sandbox Code Playgroud)

以上给出了以下错误(MSC):

'case'标签跳过'newVal'的初始化

这似乎也是其他语言的限制.为什么会出现这样的问题?

c++ switch-statement

910
推荐指数
11
解决办法
26万
查看次数

为什么我无法在switch-case块中实例化对象

我的代码有3个类n_hexa,n_octa,n_bin.代码在这里

switch(choice)
{
case 1: cin>>n; 
 n_hexa nx(n);
        break;
case 2: cin>>n; 
 n_octa no(n);
        break;
case 3: cin>>n;
 n_bin nb(n);
        break;
}
Run Code Online (Sandbox Code Playgroud)

在编译它时,为n_octa行提供消息" n_hexa的初始化 "

c++ block instantiation switch-statement

8
推荐指数
1
解决办法
2344
查看次数

标签 统计

c++ ×2

switch-statement ×2

block ×1

instantiation ×1