std::unique_ptr 释放对象时会自动释放内存吗?

问题描述 投票:0回答:1

我需要一个对象级变量(

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);
...

没有析构函数

c++ std unique-ptr
1个回答
2
投票

这是否如我所想:在释放对象时自动释放内存?

是的。 当包含对象被销毁时,它将销毁其

unique_ptr
成员对象,进而销毁它所拥有的
TIniFile
对象。

© www.soinside.com 2019 - 2024. All rights reserved.