一、什么是智能指针
一般来讲C++中对于指针指向的对象需要使用new主动分配堆空间,在使用结束后还需要主动调用delete释放这个堆空间。为了使得自动、异常安全的对象生存期管理可行,就出现了智能指针这个概念。简单来看智能指针是 RAII(Resource Acquisition Is Initialization,资源获取即初始化) 机制对普通指针进行的一层封装。这样使得智能指针的行为动作像一个指针,本质上却是一个对象,这样可以方便管理一个对象的生命周期。
智能指针作用总结:
- 处理内存泄漏。
- 处理空悬指针的问题。
- 处理异常造成的内存泄露。
注:智能指针和原生指针不要混用,使用不当可能会导致程序异常;
二、智能指针有哪些
智能指针(动态内存管理)头文件
三、独占式智能指针(std::unique_ptr)
[code] 1 class SmartPointer 2 { 3 public: 4 SmartPointer() 5 { 6 cout |