delete p;
}
为什么 point *p = new point ;不在try block以内? 因为它之前没有什么要释放的东西.虽然它自己也会抛出异常,但是它会自己处理调资源释放的问题.
支持异常会使成员对象或基类子对象的类的构造函数复杂化. 比如: 类x有成员对象 a,b,c.它们都有一对的构造和析构函数. 但a的构造函数抛出异常,那么a,b,c的析构不用调用. 但 b的构造函数抛出异常,那么a
delete p;
}
为什么 point *p = new point ;不在try block以内? 因为它之前没有什么要释放的东西.虽然它自己也会抛出异常,但是它会自己处理调资源释放的问题.
支持异常会使成员对象或基类子对象的类的构造函数复杂化. 比如: 类x有成员对象 a,b,c.它们都有一对的构造和析构函数. 但a的构造函数抛出异常,那么a,b,c的析构不用调用. 但 b的构造函数抛出异常,那么a