goto语句对析构函数的影响
2014-03-07 18:47
183 查看
在c++中,当一个对象离开定义它的域时,析构函数就被自动调用。直观来讲,就是离开域的右括号。不过据说采用setjump()和longjump()来实现的非局部goto语句就不会触发析构函数。
#include <iostream>
using namespace std;
class Test{
public:
Test(){
cout << "构造" << endl;
}
~Test(){
cout << "析构" << endl;
}
};
int main(){
{
Test t;
goto jump;
}
jump:
return 0;
}
#include <iostream>
using namespace std;
class Test{
public:
Test(){
cout << "构造" << endl;
}
~Test(){
cout << "析构" << endl;
}
};
int main(){
{
Test t;
goto jump;
}
jump:
return 0;
}
相关文章推荐
- C++跳转语句之Goto对变量定义的影响详解
- 【广利核面试题】C语言中goto语句为什么要少用甚至不用?
- (六)具有争端的goto语句(使用原则)
- 在程序中,你敢怎样使用“goto”语句!
- 为什么使用goto语句作错误处理 by明智
- 分析Query 语句对系统性能的影响
- C语言goto语句以及用goto语句构成循环
- Delphi中的goto语句
- goto 语句跳不出无限循环,但之后的循环体表达式不执行了,只执行步进和判断
- sqlCommand.ExecuteNonQuery返回sql语句影响行数问题
- [SQL]开启事物,当两条插入语句有出现错误的时候,没有错误的就插入到表中,错误的语句不影响到正确的插入语句
- Java的goto 语句
- 为什么使用goto语句作错误处理
- java中goto语句!
- sql语句执行结果对返回值的影响
- 可以考虑使用goto语句的地方
- 杂记之break,continue,goto语句的使用
- ADO判断SQL语句影响行
- 臭名远扬的goto跳转语句
- 为什么使用goto语句作错误处理 by明智