switch里面不能建立对象吗?

来源:百度知道 编辑:UC知道 时间:2024/07/07 21:13:47
switch(windowChoice)
{
case 1:Rectangle rectangle(iwp,iws,iap);break;
case 2:Bartlett bartlett(iwp,iws,iap);break;
case 3:Hanning hanning(iwp,iws,iap);break;
case 4:Hamming hamming(iwp,iws,iap);break;
case 5:Blackman blackman(iwp,iws,iap);break;
}
case里面的这些东西都是我先前设计好了的类。
编译错误,提示initialization of 'bartlett' is skipped by 'case' label之类字样。
难道switch不能建立对象吗??

只有把对象的声明放到一对大括号里,这样就限制了生命周期

不能

也可以的,加大括号

case 1:
{
Rectangle rectangle(iwp,iws,iap);break;
}
...

可以,放在花括号里面就行了