智能指针
在C++库中最重要的类模板之一
智能指针实际上是将指针封装在一个类里,通过对象来管理指针....STL中的智能指针auto_ptr
头文件:
生命周期结束时,自动摧毁指向的内存空间
不能指向堆数组(因为auto_ptr的析构函数删除指针用的是delete,而不是delete[])...(因为多个指向相同地址的智能指针调用析构函数时,会出现bug)
当auto_ptr被拷贝或赋值后,则自身的指针指向的地址会被抢占,比如:
auto_ptr p1(new int(1));...STL中的智能指针shared_ptr(需要C++11支持)
带有引用计数机制,支持多个指针对象指向同一片内存(实现共享)
提供swap()成员函数,用来交换两个相同类型的对象,比如:
shared_ptr...STL中的其它智能指针(在后面学习到,再来深入描述)
-weak_ptr
配合shared_ptr而引入的一种智能指针
-unique_ptr
只能一个指针对象指向一片内存空间(和auto_ptr类似)