智能指针scoped_ptr

智能指针scoped_ptr

作用域结束后自动析构所管理的对象;该特性决定了scoped_ptr不能与其他scoped_ptr共享同一个指针(用相同裸指针构造多个scoped_ptr可通过编译,但会运行时崩溃)

换句话说,scoped_ptr提供的就是自动析构的便利特性,scoped_ptr是裸指针的唯一拥有者

如何手动析构裸指针?调用reset()

另,scoped_ptr之间可以用swap交换权利

另外简化了生命周期管理,不用遵循生命周期结束即释放的严格准则,只要在下次refresh时候调reset(xxx)即可。reset()是构造/分配新值

release() 放弃控制权后返回原裸指针(而非delete:delete只在reset才做)

get() 判断是否已初始化

智能指针的很多使用方式与普通指针类似(如运算符重载),但很多方面有不同:必须调用智能指针提供的方法

你可能感兴趣的:(智能指针scoped_ptr)