[問題] Effective C++ 3/e item 8
在 prevemnt exceptions from leaving destructors 條例中有談到一個例子
class Widget {
public :
~Widget(){ throw some error; }
} ;
void f(){
vector<Widget> v;
}
書中有談到,如果v中有10個Widgets,當v被解構後,
第1個Widget丟出異常時,其他9個仍會被回收,但如果第2個Widget被回收時
也丟出異常,在兩個異常同時存在的情況下,程式會結束或導致不明確行為。
============================
我想問的是,當第1個Widget丟出異常,程式不是就會自動結束了嗎?
怎麼其他9個還能被回收?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.91.181
→
05/07 02:01, , 1F
05/07 02:01, 1F
→
05/07 10:40, , 2F
05/07 10:40, 2F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章