我需要一个对象级变量(
TIniFile* ini
)。在过去,代码示例和/或约定将是 new
/delete
对象,如下所示:
frmMain.h
...
private:
TIniFile* ini;
...
构造函数
...
ini = new TiniFile(fileName);
...
析构函数
...
delete ini;
...
我看到很多关于使用
std::unique_ptr()
来代替。这是否如我所想:在释放对象时自动释放内存?
frmMain.h
#include <memory>
...
private:
std:unique_ptr<TIniFile> ini;
...
构造函数
...
ini = make_unique<TiniFile>(fileName);
...
没有析构函数
这是否如我所想:在释放对象时自动释放内存?
是的。 当包含对象被销毁时,它将销毁
unique_ptr
对象,进而销毁其拥有的 TIniFile
对象。