Próprios recursos de objetos (RAII)
Certifique-se de que os recursos próprios objetos.Esse princípio é também conhecido como "aquisição de recurso é inicialização" ou "RAII".
Passe cada objeto "novo" como um argumento do construtor para outro objeto nomeado que o possui (quase sempre 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(); }”
Passe sempre imediatamente qualquer novo recurso para outro objeto que o possui.
void g() {
other_class y( OpenFile() );
…
} // automatic closing and release for file resource
// automatic exception safety, as if “finally { y.file.dispose(); }”