1.在两种情况下,调用析构方法:a.在正常状态下被销毁,栈上的对象离开作用域或者堆上的对象执行delete:b.抛出异常,堆栈回滚,栈上已经构造好的对象,也就是抛出异常之前的代码,自动调用析构方法.注意:只会对已经构造好的栈上对象调用析构方法,而不会对已经初始化好的指针执行delete,因此,使用智能指针可以避免这种情况的资源泄漏. 2.考虑下面的情况,析构方法中抛出异常,在外部捕获异常.如果是正常情况下调用析构方法,没有问题.如果由于异常,堆栈回滚对栈上已经构造好的的对象调用析构方法,这个时候