Android 智能指针实现的底层原理(sp,wp, refbase)

今天本身想明白了。
sp<A> spa = new A(); 与  A* a = new A(); 的区别了。

sp<A> spa = new A(); 执行的流程是:
1)  A* a = new A();
2) sp<A> spa = a;

步骤2的精髓在与, sp<A> 是一个模板类, 它存储在区栈, 因此函数结束以后, 它会主动调用析构函数。
而A* 是一个指针, 它指向的内存分配在堆区, 函数结束以后, 它不会主动调用析构函数。函数

相关文章
相关标签/搜索