Boost库简单运用——shared_ptr
概述
在C++项目中,内存管理的问题一直是个大问题,也是个很常见的问题。项目交由经验不足的程序员来编写维护,常出现内存泄漏、访问非法内存之类的问题,资历较老的程序员也不可避免会出错。所幸STL与Boost都为我们提供了管理动态内存的工具,我们只要如寻常指针一般使用即可,无需担心以往会出现的内存管理上的问题了。这里就先介绍一个shared_ptr,就功能来看,在大多数场景下都可以使用。
功能介绍
shared_ptr不同于auto_ptr,auto_ptr虽然也能够很好地管理动态内存,但其不能分享管理权这点也是比较麻烦的,auto_ptr赋值之后,等号右侧的对象对于动态内存的管理权也就移交给左侧对象了,然而也有不少情况需要另一个对象来管理动态内存。此时就需要使用shared_ptr了,shared_ptr新增引用计数的处理,赋值之后并不会移交管理权,而是将引用计数加1,之后当引用计数为0时,所管理内存才会被释放。
就使用方式上来看,shared_ptr行为与寻常指针一致,所以平时我们在编写C++代码时,可以用shared_ptr去替代普通指针。
初始化
初始化比较常用的方法有两种,第一种可以直接调用其构造函数,具体代码如下:
boost::share