goto语句的安全性问题
考虑这样一种情况:
class A;
void f()
{
...
for (...)
{
A a;
...
goto __end;
...
}
...
__end:
...
}
此时a是否能保证被正确析构??上述中不一定是for语句,可以是其它的语句段,总之a是函数f内的一个语句段的局部对象。
我想知道的不是编译器所表现的结果,而是想知道C++从语法上有没有保证该操作的安全性??
[解决办法]
mark,等待高手解
[解决办法]
goto 不能跨越函数/方法,
所以不会有这个问题。
[解决办法]
会调用析构函数,这也就是goto的功能
C语言有底层实现跳转,c++是在些基础上实现的goto
具体可以参考Thinking in C++ 第二卷 Tic2Vtwo
大家一起努力学习提高...
[解决办法]
goto 是支持的,
建议是慎重使用,不是不能使用。
[解决办法]
适当使用还是可以提高效率的,也不能一棍子打死。
[解决办法]
对象生存期是从对象定义开始到它所属}结束。
只要出这个范围,就要析构。
goto,编译器会确保它满足这个规定。