Effective C++回顾(4)

原创 2006年05月23日 23:01:00

条款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的可能不是同一个人,同时增加一些注释也是非常有必要的。

 

待续

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

《Effective_C++》读书笔记4

条款21、必须返回对象时,别妄想返回其reference。 1)觉不要返回pointer或reference指向一个local stack对象,或返回reference指向一个heap-alloca...

Effective C++ 2nd Edition (4)

十一. 如果class内动态配置有内存,请为此class声明一个copy constructor和一个assignment运算符简陋的string classclass String { publ...

Effective C++ 笔记4

本文内容基本来自于《Effective C++》一书,为学习后的笔记,以便温故。 《Effective C++ 》第 4节  设计与声明 (1)条款18:让接口容易被正确使用,...

Effective C++读书笔记(4)

条款05:了解C++默默编写并调用哪些函数 Knowing what functions C++ silentlywrites and calls 一个 emptyclass(空类)什么时候将不再...

<<Effective C++>>笔记4

Chapter 4 Designs and Declarations Item 18:1)Good interfaces are easy to usecorrectly and hard to u...

Effective C++ --4 设计与声明

上一部分Effective C++ --3 资源管理   18、让接口容易被正确使用,不易被误用   (1)设计接口时要考虑客户可能可能做出的错误输入,如参数的形式等。 19、设计clas...

Effective C++(条款1-4)

1、对于单纯常量,最好以const对象或enums替换#define 2、对于形似函数的宏,最好改用inline函数替代#define 3、成员函数如果是const 意味着什么? 有两个流行的概念...

《More Effective C++》 4: 非必要不提供默认构造函数

《More Effective C++》 Rule 4: 非必要不提供默认构造函数

Effective C++ 条款4——确定对象被使用前已先被初始化

得到的

Effective C++笔记(4)—条款5/6分析

Effective C++ 条款5,6分析
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)