STL中的智能指针auto_ptr
头文件:
生命周期结束时,自动摧毁指向的内存空间
不能指向堆数组(因为auto_ptr的析构函数删除指针用的是delete,而不是delete[])...auto_ptr的构造函数为explicit类型,所以只能显示初始化,比如:
auto_ptr ap1(new int(1)); //初始化正确,创建ap1类模板对象,使类模板里的指针为...int*型,并指向1的地址
int* p = new int(1);
auto_ptr ap2(p); //初始化正确
// auto_ptr ap3 = new int(2); //出错,不能隐式初始化
提供get()成员函数,可以用来查看类里的指针地址.比如:
auto_ptr ap(new int(1));...被拷贝或赋值后,则自身的指针指向的地址会被抢占,比如:
auto_ptr p1(new int(1));
auto_ptr p2(new int(2));
p1 =p2