class A
{
public:
A(){}
~A(){}
};
int main()
{
goto Flag1;
int i;
Flag1: i=2;
goto Flag2;
A a;
Flag2: i++;
return 0;
}
第一个goto跳到Flag1是没有问题的,但是第二个goto跳到Flag2是不行的。C++标准定义goto不能跳过构造函数的执行。
在vs中编译上面代码会有错误提示:
error C2362: initialization of 'a' is skipped by 'goto Flag2'