《大规模C++程序设计》读书笔记31

来源:互联网 发布:ibm服务器安装linux 编辑:程序博客网 时间:2024/05/22 11:50

Technorati 标签: C++,大规模C++程序设计,读书笔记

定义53:如果一个和某对象状态相关的值有助于预期的语义(即ADT的基本行为),那么它是逻辑值;否则就是物理值。

原则115:对一个完全封装的接口来说,每个可编程访问的值都是一个逻辑值。

指导方针39:避免允许通过程序对物理值进行访问。

封装的目标是隐藏所有的物理状态,同时使逻辑状态可通过接口随时得到。

原则116:提示是只写(write-only)的。

原则117:最好的提示不直接被绑定到特定的实现。

最好的提示和抽象本身相关,而不与特定实现相关。

 

指导方针40:调用一个const成员函数的结果不应该改变对象中的任何可编程访问的值。

 

原则118:如果一个支持值语义的类型有两个实例,两个实例各自所有的逻辑值都相等,那么这两个实例是相等的(==);只要有任何一个单个的逻辑值不相等,这两个实例就是不相等的(!=)。

 

原则119:将全局运算符new和delete工具化,是在系统中理解和测试动态内存分配行为的简单但有效的方法。

原则120:当工具化全局的new和delete时,使用iostream会引起令人不快的副作用。

 

原则121:从不返还其内存的特定类分配方案,使得对内存泄露的自动检测变得更加困难。

原则122:特定类的内存分配器倾向于占用全局分配的内存,因此增加了整个内存的使用。

原则123:对特定类的内存管理方法不加选择的使用,是一种以自我为中心的形式,它会对一个集成系统的整体性能产生负面影响。 

 

原则124:一个特定对象(object-specific)的内存分配方案有足够的上下文可以知道什么时候不再需要一些实例的子集而可以释放它们(这些实例子集是分配给特定对象并由它来管理的)。

 

指导方针41:特定对象的内存管理比特定类的内存管理要好。

 

指导方针42:使用一个非const指针数据成员来保存被管理的对象。

 

次要设计规则9:避免依赖一个对象在初始化过程中定义数据成员的顺序。

 

原则125:如果能够利用有关特定用户使用模式的知识,我们通常可以为其管理的对象编写更有效的分配程序。

 

指导方针43:考虑提供一种方法在块分配和动态内存的单独分配之间进行切换。

 

定义54:当程序失去了对动态分配的内存块进行释放的能力时会发生内存泄露

原创粉丝点击