C++析构函数不能失败的4个理由
时间:2010-10-25 来源:zhenjing
对于析构函数可能抛出异常的类,将有如下限制:
- 无法用于函数;当作为临时变量(对象),在析构时抛异常将导致程序异常终止。
- 不能被继承:派生类的析构过程也将可能抛出异常;无法作为全局或静态变量。
- 无法用于数组。数组无法正确的回滚,行为可能未定义。假如数组有10个元素,创建时出错(构造函数抛异常),而回滚时需调用析构函数,但此过程有可能出现一个或多个异常。
- 无法用于STL容器中,STL禁止所有一起使用的对象析构时抛异常。
相关阅读 更多 +