リソースを所有するオブジェクト (RAII)
独自のリソース オブジェクトかどうかを確認します。この原則とも呼ばれます「リソースの取得は初期化」ですか「RAII。」
例
「新しい」のすべてのオブジェクトはコンス トラクターの引数としては (ほとんど常に unique_ptr) を所有する別の名前付きオブジェクトに渡します。
void f() {
unique_ptr<widget> p( new widget(…) );
my_class x( new widget() );
…
} // automatic destruction and deallocation for both widget objects
// automatic exception safety, as if “finally { p->dispose(); x.w.dispose(); }”
常にすぐに、新しいリソースが所有する別のオブジェクトに渡します。
void g() {
other_class y( OpenFile() );
…
} // automatic closing and release for file resource
// automatic exception safety, as if “finally { y.file.dispose(); }”