1、
两种情况下destructor会被调用:
(1)当对象在正常情况下被销毁,也就是当它离开了它的生存空间或是被明确的删除;
(2)当对象被exception处理机制——也就是exception传播过程中的stack-unwinding(栈展开)机制——销毁。
2、
当destructor被调用时,可能(也可能不)有一个exception正在作用之中,但无法在destructor中区分这些状态(现在有了区分的办法。1995年7月 IOS/ANSI C++ 标准委员会加入一个新函数: uncaught_exception。如果某个exception正在作用中