- 5
- 0
- 约 5页
- 2017-08-29 发布于安徽
- 举报
背景 在面向对象类的设计中,有时为了强化效能,特别是当构造大量小对象时,为了改善内存碎片,就需要自己实现对象的内存管理,以替换系统缺省的分配和释放行为,即全局的new和delete。按照c++标准,在定制类专属的new和delete时,为了减免客户代码使用时的麻烦和问题,需要考虑同时定制简单(normal new)、定位(placement new)和无异常(nothrow new)三种new情形,以及与之配对的三种delete情形,另外还有对应的数组new[]和delete[]各三种情形。在接口设计上,每种情形都是operator new和operator delete的重载版本;在内存管理上,具体的对象空间分配和释放是灵活的,因此这一部分可实现为策略模式,通过改变替换不同的内存管理策略,即可轻易获得不同的内存分配和释放行为,而类的代码则无须改变。为了方便定制类的new和delete,可以从一个接口基类模板继承而自动获得这种特性。这个基类模板实现了单个对象的new、delete和对象数组的new、delete,而模板参数正是内存管理策略类,它的设计约束如下: 1)必须存在static成员方法malloc和free,其参数和返回值与C库的malloc和free一致。 2)malloc只分配空间,若分配成功则不必初始化,否则失败返回NULL,不能抛出异常,因为nor
您可能关注的文档
最近下载
- ISPE基准指南:清洁验证生命周期–应用,方法和控制(ISPE Baseline Guide Cleaning Validation Lifecycle Applications, Methods, and Controls).pdf VIP
- 新版2026年高考数学(北京卷)真题详细解读及评析.docx
- 大学物理课件:2-3骨的力学特性 .ppt VIP
- 手电筒产品课程设计报告书.docx VIP
- 兰州石化职业技术大学《C语言程序设计》2019-2020学年第一学期期末试卷.pdf VIP
- 千字文(繁体简体注音).doc VIP
- 首件检验FAI实战培训.pptx
- 2024年秋季新修订人教版七年级上册语文全册教学课件(新教材).pptx
- SouthGNSS南方测绘 复合翼无人机 SF2400 SF3300 SF4200 MF2500 说明书.pdf
- 放射诊疗许可变更申请表.docx
原创力文档

文档评论(0)