Skip to main content

moregeek program

属性与内存管理(属性与内存管理都是相互关联的) 第一部分-多极客编程

属性与内存管理(属性与内存管理都是相互关联的)第一部分一,属性:属性是OC2.0之后出来的新语法,用来代替setter和getter方法,使用属性可以快速创建setter以及getter方法的声明,setter和getter方法的实现,另外添加了对实例变量操作的安全处理(其安全是通过内存管理实现的)setter 方法作用:为单一的实例变量重新赋值, 规范: (- 号方法)无返回值, 名字以set开

Read More

一个简单的C++垃圾回收器实现(GC)-多极客编程

在C++本来是没有垃圾回收器的,而随着内存的廉价一些新型的语言都加入了垃圾回收的策略(Garbage Collection),比如Java,C#等语言。带着垃圾回收原理的探究的想法,这里简单实现一个垃圾回收器:采用引用计数的方法。使用C++语言。代码完整/********************** **    gc.h ***********************/ #include <

Read More

使用计数器来避免多份拷贝-多极客编程

    C++中一般实现String类的时候,每次当我们复制String对象的时候,我们会将rep(为String的成员变量)也复制一份。其实我们也可以通过避免这些复制操作来节省一些程序的运行时间,我们的解决方法就是让多个句柄同时指向rep。这样在复制String对象的时候,我们只复制这个句柄而不是rep,这时的句柄变成一个指向用来表示“指向rep的句柄数”的计数器。当指向他的句柄数为0时,我们将

Read More

内存回收的一些基本方法-多极客编程

内存垃圾回收(Garbage Collection)是一个很古老的技术了,最开始在Lisp上出现。如今几乎所有高级语言都有GC,大部分程序员不再需要绞尽脑汁通宵达旦去查找内存泄露的原因了。我以前也不怎么关心垃圾回收这个问题,可是面试时老是被问到智能指针,而我又不会写,因为我对C++不熟。所以决定研究并且总结一下这个问题。其实智能指针都不能称为GC,就是编译器给你加了delete或free,基于的原

Read More