现在我们开始boost之旅,我们从智能指针开始。
C++标准库里面也有智能指针 auto_ptr(在头文件<memory>中),boost库中额外提供了几种智能指针。
智能指针主要用以解决内存回收问题。
scoped_ptr:与atuo_ptr相似,但不能进行赋值操作
scoped_array:与scoped_ptr想似,但它是操作数组的
shared_ptr:用以解决共享对象的生存期问题
shared_array:同上
intrusive_ptr:intrusive_ptr是shared_ptr的侵入式版本。(如果不懂什么是侵入式,请看相关的设计模式方面的书)。
weak_ptr: weak_ptr是shared_ptr的观察者。(如果不懂什么观察者,请看相关的设计模式方面的书)。
具体请参考官方文档以及《《超载C++标准库》》。
智能指针主要用以解决内存回收问题。功能的确很大,也很实用,它们是针对现实中存在的问题提出来的,我们在学习的时候,先问自己我们为什么学,学这个能解决什么问题。