析构函数不能失败的理由
来源:互联网 发布:怎么样提高淘宝销量 编辑:程序博客网 时间:2024/05/17 01:45
析构函数不能失败的理由
分类: C++再学习系列 2009-07-02 21:393195人阅读 评论(12)收藏 举报
c++编译器c
析构函数不能失败的理由
析构函数非常特殊,编译器将在不同的上下文中自动调用。由于其特殊性,C++标准有如下建议:在栈展开过程中,如果析构函数抛异常,terminate函数将被调用。因此,析构函数应该总是能够捕获异常,并且不会让异常传播到析构函数之外。(STL中的所有析构函数均不会失败)。
对于析构函数可能抛出异常的类,将有如下限制:
- 无法用于函数;当作为临时变量(对象),在析构时抛异常将导致程序异常终止。
- 不能被继承:派生类的析构过程也将可能抛出异常;无法作为全局或静态变量。
- 无法用于数组。数组无法正确的回滚,行为可能未定义。假如数组有10个元素,创建时出错(构造函数抛异常),而回滚时需调用析构函数,但此过程有可能出现一个或多个异常。
- 无法用于STL容器中,STL禁止所有一起使用的对象析构时抛异常。
- 析构函数不能失败的理由
- [C++再学习系列] 析构函数不能失败的理由
- 构造函数不能为虚函数的理由
- 不能不用jpa的理由
- Windows 8 没有失败的五个理由
- 10个不能开办公司的理由
- PHP不能适应大型应用的理由
- 人生不能没有了前进的理由
- 虚析构函数存在的理由
- 傲慢是把并购导向失败的最大理由
- 学习函数式编程的理由
- 网络不能代替报纸的N个理由
- 国际:Ruby、Python不能威胁Java的13个理由
- 国际:Ruby、Python不能威胁Java的13个理由
- Ruby、Python不能威胁Java的13个理由
- 国际:Ruby、Python不能威胁Java的13个理由
- 给一个自己不能坚持写博客的理由?
- 忙,可忙不是不能兼顾的理由,弱才是。
- spin_lock_irqsave关中断后,为什么要再禁止抢占
- 九宫格遍历(dfs)深搜图示
- 第五次上机
- 【昊昊带你学】深搜(DFS)
- 【30篇突击 android】源码统计 十七
- 析构函数不能失败的理由
- Hdu 1075+ Hdu 1251 (动态Trie)
- andriod开发之自动开关机实现代码
- Ubuntu 12.10安装后需要做的那些事
- 线段树
- Android之TelephonyManager类的方法详解
- 【昊昊带你学】软院特别篇-简单订票系统
- twoSum
- Google Map Android v2开发: 安装运行Google Map Android v2 示例程序