研究Android的时候,经常会遇到sp.wp的东西,网上一搜,原来是android封装了c++中对象回收机制.说明:1. 如果一个类想使用智能指针,那么必须满足下面两个条件: a. 该类是虚基类RefBase的子类或间接子类 b. 该类必须定义虚构造函数.如virtual ~MyClass(); 2. 本文以类BBinder来进行说明,其余类使用sp或wp的情况类似3. 代码路径:frameworks/base/libs/utils/RefBase.cpp fram
使用boost的智能指针需要包含头文件"boost/smart_ptr.hpp",c++11中需要包含头文件<memory> 1.auto_ptr.scoped_ptr.scoped_array ①.auto_ptr是C++标准中的智能指针,在指针退出作用域的时候自动释放指针指向的内存,即使是异常退出的时候.auto_ptr实际上是一个对象,重载了operator*和operator->,且提供了一些成员函数,比如使用成员get()可以获得对应类型的原始指针. aut