Preciso de uma variável de nível de objeto ( TIniFile* ini
). No passado, os exemplos de código e/ou convenção seriam new
/ delete
o objeto, assim:
frmMain.h
...
private:
TIniFile* ini;
...
constructor
...
ini = new TiniFile(fileName);
...
destruidor
...
delete ini;
...
Tenho visto muito sobre usar std::unique_ptr()
instead. Isso faz o que eu acho que faz: libera memória automaticamente quando o objeto é liberado?
frmMain.h
#include <memory>
...
private:
std:unique_ptr<TIniFile> ini;
...
constructor
...
ini = make_unique<TiniFile>(fileName);
...
sem destruidor
Sim. Quando o objeto que o contém é destruído, ele destruirá seu
unique_ptr
objeto membro, que por sua vez destruirá oTIniFile
objeto que ele possui.