C++ 智能指针详解
C++ 智能指针详解 文章目录 C++ 智能指针详解 1. 智能指针能解决什么问题? 2. 智能指针的发展 3. 智能指针 shared_ptr 3.1 创建shared_ptr实例 3.2 访问所指对象 3.3 拷贝和赋值操作 3.4 检查引用计数 3.5 reset 函数 4. 智能指针 weak_ptr 4.1 weak_ptr 的基本用法 4.2 weak_ptr 的相关函数 4.3 weak_ptr 总结 5. 智能指针 unique_ptr 6. 智能指针注意事项 1. 智能指针能解决什么问题? 在C++中,动态内存的管理是通过一对运算符来完成的: new ,在动态内存中为对象分配空间并返回一个指向该对象的指针,可以选择对对象进行初始化; delete ,接受一个动态对象的指针,销毁该对象,并释放与之关联的内存。 动态内存的使用很容易出问题,因为确保在正确的时间释放内存是极其困难的。有时会忘记释放内存,在这种情况下会产生 内存泄露 ;有时在尚有指针引用内存的情况下就释放了它,在这种情况下就会产生引用非法内存的指针。 为了更容易(同时也更安全)地使用动态内存,C++11标准库提供智能指针(smart pointer)类型来管理动态对象。 智能指针的行为类似常规指针,重要的区别是它负责 自动释放所指的对象 。 智能指针是模板类而不是指针 。类似vector