2012年11月13日

摘要: 析构函数非常特殊,编译器将在不同的上下文中自动调用。由于其特殊性, C++ 标准有如下建议:在栈展开过程中,如果析构函数抛异常, terminate 函数将被调用。 因此,析构函数应该总是能够捕获异常,并且不会让异常传播到析构函数之外。 (STL 中的所有析构函数均不会失败 ) 。对于析构函数可能抛出异常的类,将有如下限制:无法用于函数;当作为临时变量 ( 对象 ) ,在析构时抛异常将导致程序异常终止。不能被继承:派生类的析构过程也将可能抛出异常;无法作为全局或静态变量。无法用于数组。数组无法正确的回滚,行为可能未定义。假如数组有 10 个元素,创建时出错 ( 构造函数抛异常 ) ,而回滚时需 阅读全文
posted @ 2012-11-13 19:04 水至清则无鱼 阅读(143) 评论(0) 推荐(0) 编辑

导航