状態遷移とリソース管理
2005.12.30 Friday 22:20
C++ではコンストラクタ・デストラクタをうまく使うことで「始めたことは終わらせる」というのをプログラマの注意力とは関係なく保証する仕組みを作ることができる.
しかし,残念ながらそれは状態が2つだけの場合には使えるが3つを超えたらその方法ではうまくいかない.
しかし,残念ながらそれは状態が2つだけの場合には使えるが3つを超えたらその方法ではうまくいかない.
S1→S2→S3→S1 と遷移し,S2ではリソースの獲得が必要でS3では別のものを併せて取得.しかし,S1に戻るときには両方を解放する必要があって,さらにS3の処理でエラーになった場合には自動的に解放されるから解放処理は不要.などというものを実行パスにかかわらずリソース状況を正しく保つにはどうすればよいか.
というのが最近考えている問題だ.
というのが最近考えている問題だ.
Comments