Nesnelerin Kaynakları (RAII)
Kendi kaynaklarını nesnelerin emin olun.Bu ilke olarak da bilinen "kaynak alma başlatma" dir ya da "RAII."
Örnek
Her "Yeni" nesne (hemen her zaman unique_ptr) sahip olduğu başka bir adlandırılmış nesne oluşturucu bağımsız değişken olarak geçirmek.
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(); }”
Hemen her zaman yeni bir kaynak, sahip başka bir nesne geçirin.
void g() {
other_class y( OpenFile() );
…
} // automatic closing and release for file resource
// automatic exception safety, as if “finally { y.file.dispose(); }”