智能指针浅析

1.什么是智能指针?指针

智能指针(SmartPointer),简单来讲,就是用起来像指针,可是很聪明,能够本身在适当的时候删除动态分配的对象的指针。对象

2.何时使用智能指针?内存

智能指针主要用于生存期控制和阶段控制。好比,在一个类中,若是有指针成员,那么,若是类写的不够当心,就很容易出异常。由于指针指向的动态内存,必须在拷贝构造或者赋值时,复制一份一样大小的内存。不然,容易引发内存泄漏或者对未定义的指针就行删除。内存泄漏

3.使用智能指针的优点是什么?引用

多个对象间能够共享一份动态内存,而且不须要费心在动态内存的申请和释放上。关于第一点,我以为有点像Linux下的文件管理系统的机制。技术

4.智能指针如何实现?异常

智能指针的实现,关键技术在于“引用计数“。具体来讲,一般有两种方式:第一,使用辅助类。第二,使用句柄类。咱们一般采用句柄类的方式来实现,缘由是这样做能够减小客户代码和类代码之间的耦合性。文件

5.如何使用智能指针?管理

STL库中的auto_ptr和Boost中的一些智能指针。系统

相关文章
相关标签/搜索