对象所有资源 (RAII)
记住对象的资源。 也称此原则是“"获取资源即初始化" (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(); }”