首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

有有关问题,大家帮忙看看

2012-04-14 
有问题,大家帮忙看看classA{intipublic:A()~A()}intmain(){inticin iswitch(i){case1:Aa1breakc

有问题,大家帮忙看看
class   A
{
int   i;
public:
A();
~A();
}

int   main()
{
int   i;
cin> > i;

switch(i)
{
case   1:   A   a1;   break;
case   2:   A   a2;   break;
}

return   0;
}

Thinking   in   C++   上的例子,问题是编译会出错,因为case   1:有可能跳过
define   a1;   为什么去掉case   2就可以编译了?不是一样可以跳过define   a1?

[解决办法]
case 1: A a1; break;
case 2: A a2; break;

改成

case 1: {A a1;} break;
case 2: {A a2;} break;
[解决办法]
因为去掉case 2后,在switch中只有一个case,不可能跳过过a1定义而使用a1(注意a1的作用域是statement scope,只在switch语句内有效)。

热点排行