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