class foo{
int i;
char c;
public:
foo(); //建構子
};
一般來說,我們的建構子都這樣寫
foo::foo()
:i(0), c(''){ <-- 建構初始列
}
但是,如果想在建構子上加try-catch,難道是這樣??
foo::foo()
:i(0), c(''){ <-- 建構初始列
try{
}
catch(...){
}
}
發現了嗎?唷!不!所謂江湖一點訣!
在Primer C++中就有介紹,如果要捕捉到建構初始列上,初始化成員變數時的exception時,就一定要這樣寫
foo::foo()
try:i(0), c(''){ <-- 建構初始列
}catch(...)
{ }
這個名稱叫「function try block」看到這,會想知道解構子怎麼處理嗎?
解構子.....基本上,絕對不可以出現exception!!!!
沒有留言:
張貼留言
(什麼是留言欄訊息?)