scoped_ptr是一个类似auto_ptr的智能指针,scoped_ptr可以保证new操作符在堆上创建的对象在任何时候都可以被正确的删除。
scoped_ptr的最大特点就是一旦scoped_ptr拥有了某个对象的所有权,就无法再次取回!
scoped_ptr的构造函数:
scoped_ptr(T *p=0):px(p)
{
}
//其接受T*类型的指针p,创建出对象,并在该对象内部保存指针参数p,此处p必须是一个new动态分配的结果,或者是一个空指针
scoped_ptr的析构函数:
~scoped_ptr()
{
delete px;
}
//对象的生命周期结束后,析构函数调用delete自动销毁所保存的对象
scoped_ptr为了保证被其管理的指针的所有权不被转移,就将其拷贝构造和赋值函数设置为私有的:
private:
T *px;
s