关闭

Effective C++回顾(4)

标签: c++delete程序开发windows优化
1234人阅读 评论(0) 收藏 举报
分类:

条款7:为内存不足的状况预做准备

作者讲了程序如何在内存不足的情况下保证做到正确的处理,可是以我自己多年的程序开发经验来看,这些处理没有什么太大的必要,至少我是从来没有这么做过:

1.  现在的机器配置相对而言应该是比较高的

2.  操作系统的能力,虚拟内存做了一些保障

3.  对于需要大量内存操作的程序,我们可能会采取一些优化方式来处理,如采用文件来模拟内存

正如作者在条款最后讲的一样,不管是采用什么样的处理方式,内存不足情况下是返回0还是返回异常都不是最重要,重要是你要对于内存分配的函数要有概念,你不能假设内存总是能够成功分配,要能够正确的处理内存不足情况。

对于如何更好的检查内存不足的情况,最好是把你的程序放到Windows98之前的操作系统中去运行,如果这样都没出现什么问题,程序基本上也就不太会有问题。

 

条款8:撰写operator newoperator delete时就遵行的公约

几个注意事项:

1.  正确处理内存不足的情况

2.  允许分配0字节的内存,事实上是分配出1字节的内存

3.  如果基类中实现了newdelete操作,注意继承而引起的一些问题

4.  允许delete0的内存

我觉得第三点尤其重要,在类中设计newdelete操作时,要充分考虑到这个问题。在设计的时候也可以借鉴文中提供的例子,不过我觉得最好还是在if (size != sizeof(Base)中增加assert来出一些警示。因为很多的情况下,实现BaseDerived的可能不是同一个人,同时增加一些注释也是非常有必要的。

 

待续

0
0

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:269696次
    • 积分:3808
    • 等级:
    • 排名:第8335名
    • 原创:92篇
    • 转载:5篇
    • 译文:24篇
    • 评论:61条
    文章分类