- ベストアンサー
try{}catch(){}とデストラクタの関係を教えてください。
try-catchでメモリ確保を含むクラスをスローした場合、デストラクタはどの時点で働くのか、教えてください。たとえば、↓の使いかたは大丈夫でしょうか? 【1】 try{ throw(CError(100, "エラー情報")); }catch(CError& err){ //ここでerrを参照しても問題ないのでしょうか? } 【2】 try{ CError err(100, "エラー情報"); throw(err); // (1) }catch(CError& err){ //ここでerrを参照しても問題ないのでしょうか? //まだデストラクタはちゃんと動作するのでしょうか? //catchが呼び出し元のメンバであったりしても大丈夫なのでしょうか? } 宜しくお願いします。
- みんなの回答 (4)
- 専門家の回答
お礼
わかりやすくて、とても理解の助けになりました。 【2】の動作がいまいち納得がいきませんが、とりあえずコピーコンストラクタで間違えない作りであれば、大丈夫そうですね。 ありがとうございました。