auto_ptr, unique_ptr, shared_ptr and weak_ptr智能指针讲解
转自:https://blog.csdn.net/jxw167/article/details/72864554 C ++库提供以下类型的智能指针的实现: auto_ptr unique_ptr shared_ptr weak_ptr 它们都是在内存头文件中声明。 auto_ptr 从C ++ 11开始,此类模板已被弃用。 unique_ptr是具有相似功能但具有改进的安全性的新工具。 auto_ptr是一个智能指针,用于管理通过新表达式获取的对象,并在auto_ptr本身被销毁时删除该对象。 当使用auto_ptr类描述一个对象时,它存储一个指向单个分配对象的指针,该对象可以确保当它超出范围时,它指向的对象必须被自动销毁。 它基于独占所有权模式,即同一类型的两个指针不能同时指向相同的资源。 如下面的程序所示,复制或分配指针会更改所有权,即源指针必须赋予目标指针所有权。 [cpp] view plain copy #include<iostream> #include<memory> using namespace std; class A { public: void show() { cout << "A::show()" << endl; } }; int main() { // p1 is an auto_ptr of type A auto_ptr<A> p1( new