C++ 中的智能指针


在 C++ 中,内存安全和内存泄露是最容易出现的问题,而对于前者,内存安全问题,很大程度上是由于指针的使用不当,比如直接访问未初始化的指针、通过指针访问以及被释放掉的对象等。为了解决这类问题,在 C++11 中,新增了一些现代化的指针工具,旨在替换原始的指针,实现更加智能化的内存数据管理,这些指针也叫智能指针(smart pointer)。

C++11 中新增的智能指针对象如下:

指针类别 备注
unique_ptr 拥有独有对象所有权语义的智能指针
shared_ptr 拥有共享对象所有权语义的智能指针
weak_ptr 到 std::shared_ptr 所管理对象的弱引用

https://juejin.cn/post/6844903993055920141

特点

  • 这三个指针都定义在 memory 头文件下,使用时需要 #include <memory>,并处于 std 中
  • 智能指针会自动进行析构操作,当独占指针结束作用域,或共享指针引用计数为0时,会自动释放指针的对象

unique_ptr

C++ 中的智能指针

http://blog.czccc.cc/p/2633d759/

作者

Cheng

发布于

2021-01-29

更新于

2022-08-06

许可协议

评论