c++ - 现代 C++ 中的唯一指针

标签 c++ pointers

我在整个网络上进行了大量搜索,发现了很多现代 C++ 中 unique_ptr 实现的不同示例。我已经开始将所有以 ::iterators 开头的代码更新为 auto 等。但是,使用智能指针我不认为我完全理解我的意思我应该在做。

我有一个标准指针:

 object *temp = new object();

然后我有了新的智能指针:

  unquie_ptr<object> temp(new object());

这不是正确的实现方式吗?如果是这样,当我在程序末尾构建一个简单的清理函数时,创建智能指针似乎需要更多的打字/工作?

最佳答案

您可以使用性能更高的 std::make_uniquestd::make_shared

然而,make_unique在C++11中不可用,但在C++14及以上版本中可用

所以

std::unique_ptr<object> = std::make_unique<object>();

auto p = std::make_unique<object>();

shared_ptr 也有类似的事情。

在 C++11 中,您可以将表达式用于 unique_ptr

unquie_ptr<object> temp(new object());

关于c++ - 现代 C++ 中的唯一指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35208935/

相关文章:

c++ - 在新线程 C++ 中发送 http 请求

c - 传递双指针作为函数参数

c - 在另一个字符串中的每个字符之前附加相同的字符串

pointers - golang如何用指针打印结构值

将 2D 数组复制到函数外部动态分配的 2D 数组

c++ - 我可以将 list 文件添加到其他人的 exe 中吗?

c++ - 将 Eclipse/CMake 与现有 C++ 项目结合使用

c++ - 如何使用 Winsock 从数据报的 IP header 中获取源 IP 地址?

C++ 异常返回类型为什么是 char*

C 直接/显式传递参数