- 6
- 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
您可能关注的文档
最近下载
- 2025年特许金融分析师利润表相关财务比率构建专题试卷及解析.pdf VIP
- 2025年设备监理师设备验收与移交阶段监理服务质量评价专题试卷及解析.pdf VIP
- 2025年演出经纪人演出经纪行业运营模式专题试卷及解析.pdf VIP
- 2025年拍卖师拍卖师控场中的快速反应技巧专题试卷及解析.pdf VIP
- 2025年拍卖师有保留价拍卖与无保留价拍卖专题试卷及解析.pdf VIP
- 2026年社区工作者考试社会工作实务试卷.docx VIP
- 2026年广东省深圳市社区工作者考试《社会工作实务》真题及答案解析.docx VIP
- 医疗护理员传染病职业防护考核评分表(以呼吸道传染病为例).xlsx VIP
- 体育场馆运营管理手册与赛事组织(执行版).docx VIP
- 傅里叶红外仪表MBGAS3000.pdf VIP
原创力文档

文档评论(0)