一、区别 首先说说在什么情况下使用 weak 关键字 1、ARC中,在有可能出现循环引用的时候,往往要通过让其中一端使用weak来解决,比如:delegate 的代理属性。 2、自身已经对它有过一次强引用,所以没有必要再强引用一次。这个时候也会使用weak;还有就是自定义IBOutlet控件属性一般也使用we
一:什么是ARC,ARC是iOS5引入的内存管理机制,即自动引用计数。相对于iOS早期的MRC即手动管理计数,在内存管理上更加高效和简便。 例如在一个函数中,初始化一个对象或者去持有一个对象则引用计数+1,但不再使用这个对象时,引用计数将会-1。这个过程如果使用MRC来操作,则需要手动写入retain和re
unique_ptr: 1.unique_ptr与shared_ptr不同,某个时刻只能有一个unique_ptr指向给定的对象,当unique_ptr被销毁时,其所指向的对象也被销毁,和shared_ptr一样,unique_ptr默认使用delete释放指向的对象 2.unique_ptr初始化 1.不初始化,返回一个内容为nullptr的unique_ptrunique_ptr<
引言 除了静态内存和栈内存外,每个程序还有一个内存池,这部分内存被称为自由空间或者堆。程序用堆来存储动态分配的对象即那些在程序运行时分配的对象,当动态对象不再使用时,我们的代码必须显式的销毁它们。 在C++中,动态内存的管理是用一对运算符完成的:new和delete,new:在动态内存中
std::weak_ptr 避免shared_ptr内存泄漏的利器。
如题,我们今天要讲的是C++11引入的三种智能指针中的最后一个:weak_ptr。在学习weak_ptr之前最好对shared_ptr有所了解。 1、为什么需要weak_ptr? 在正式介绍weak_ptr之前,我们先来回忆一下shared_ptr的一些知识。我们知道shared_ptr是采用引用计数的智能指针,多个shared_ptr实例可以
转自http://blog.chinaunix.net/uid-442138-id-2122464.html enable_from_this 的使用与实现原理说明: shared_from_this()是enable_shared_from_this的成员函数,返回shared_ptr; 注意的是,这个函数仅在shared_ptr的构造函数被调用之后才能使用。 原因是enable_shared_from_thi
[转载]简单探讨weak指针自动置为nil的底层实现 引子 在面试别人的时候,经常问到weak和assign的区别。然后再深入一点就会问weak是怎么将对象置为nil的。一般回答到内部维护着一个weak表就算勉强可以了。但上次面试被阿里问到相同的问题:我自己的回答被嫌弃太过简单。我的回答是:Runti
1.Mother Teresa, who received a Nobel Peace Prize for her work on behalf of the poor dies in Calcutta, India--she was 87 years old. note: 1.on 读做/∂n/ 而不是 /on/ 2.主句谓语dies应使用过去时,但是由于文章的视角是跟随Mother Teresa的人生进程,因