_J

please call me j

导航

2012年8月30日 #

【MK Document】CMKObject

只有注册用户登录后才能阅读该文。 阅读全文

posted @ 2012-08-30 14:24 _J 阅读(5) 评论(0) 推荐(0) 编辑

2012年8月28日 #

【c++手记】Copy Constructor

摘要: 【资料】 《primer》P407 复制构造函数【内容】 1. 一种特殊构造函数。特征:单个形参(常用const修饰),是对该类类型的引用。 当定义一个新对象,并用一个同类型的对象,对它进行初始化时。将显示使用复制构造函数。当将该类型的对象传递给函数或从函数返回该类型的对象时,将隐式使用复制构造函数。 2.复制构造函数作用: 1.根据另一个同类型的对象显示或隐式初始化一个对象。(详细请参照《Primer》P406“对象定义形式”) 2.复制一个对象,将它作为实参传给一个函数(函数的形参为类类型时),复制实参的值。(《Primer》P407倒数第6行) 3.函数返... 阅读全文

posted @ 2012-08-28 13:37 _J 阅读(136) 评论(0) 推荐(0) 编辑

【MK】目的&目标

摘要: 【框架目的】本框架基于C++语言实现,鉴于C++此面向对象语言没有一个统一的标准框架,从而导致开发过程的维护性与健壮性、重用性方面比其他面向对象语言(如Java)都低。虽然有类似MFC、Qt、wxWidget等有名的框架,但框架缺少许多面向对象应有的特性,如一个成熟的GC体系,以及相关的RTTI技术。这些都使往后的项目开发造成一定程度的影响,故希望通过研究一个理想框架,来使开发、维护过程趋于成熟。同时,这也是我学习面向对象开发的一个契机。【框架准则】而此框架将会以《设计模式》为开发准则。【框架目标】1.有其消息机制。2.有相关的特定容器库3.有其垃圾回收机制。4.结合Qt的GraphicVie 阅读全文

posted @ 2012-08-28 13:34 _J 阅读(126) 评论(0) 推荐(0) 编辑

【GC Algorithm】标记消除算法

摘要: (此文章参考位置-21TO)【概述】标记-清除(Mark-Sweep)算法依赖于对所有存活对象进行一次全局遍历来确定哪些对象可以回收,遍历的过程从根出发,找到所有可达对象,除此之外,其它不可达的对象就是垃圾对象,可被回收。整个过程分为两个阶段:标记阶段找到所有存活对象;清除阶段清除所有垃圾对象。标记-清除算法的执行过程是这样的:午餐过程中,餐厅里的所有人都根据自己的需要取用餐巾纸。当垃圾收集机器人想收集废旧餐巾纸的时候,它会让所有用餐的人先停下来,然后,依次询问餐厅里的每一个人:“你正在用餐巾纸吗?你用的是哪一张餐巾纸?”机器人根据每个人的回答将人们正在使用的餐巾纸画上记号。询问过程结束后,机 阅读全文

posted @ 2012-08-28 13:23 _J 阅读(514) 评论(0) 推荐(0) 编辑

【GC Algorithm】引用计数算法

摘要: (文章参考http://www.2cto.com/kf/201110/108419.html)【概述】引用计数(Reference Counting)算法是每个对象计算指向它的指针的数量,当有一个指针指向自己时计数值加1;当删除一个指向自己的指针时,计数值减1,如果计数值减为0,说明已经不存在指向该对象的指针了,所以它可以被安全的销毁了(回收)。可以很直观的用下面的图表示:【优点】1.在于内存管理的开销分布于整个应用程序运行期间,非常的“平滑”,无需挂起应用程序的运行来做垃圾回收;2.在于空间上的引用局部性比较好,当某个对象的引用计数值变为0时,系统无需访问位于堆中其他页面的单元,而后面我们将 阅读全文

posted @ 2012-08-28 00:22 _J 阅读(461) 评论(0) 推荐(0) 编辑

【c++手记】关于const的问题&资料

摘要: 【问题】 constint Func(constint &constx)const;//error!【解析】 1.第一个const:(在函数中)修饰返回值 声明了返回值后,const按照"修饰原则"进行修饰,起到相应的保护作用。 (何为保护作用?如果给采用“指针传递”方式的函数返回值加const修饰,那么函数返回值(即指针)的所指对象不能被修改,该返回值只能被赋给加const修饰的同类型指针) 2.第二个const:(在函数中)修饰参数 用相应的变量初始化const常量,则在函数体中,按照const所修饰的部分进行常量化。 如形参为const A* a,则不能对传递 阅读全文

posted @ 2012-08-28 00:12 _J 阅读(168) 评论(0) 推荐(0) 编辑