中文名:C++编程风格
英文名:C++ Programming Style
[美] Tom Cargill 著 聂雪军 译
机械工业出版社
2007年1月第一版
书摘正文:
第1章 抽象
p11.将共同的抽象提取出来并放到基类中。
p12.一个类应该能够描述一组对象。
p13.如果派生类之间的区别在于属性,则用数据成员来表示;如果在于行为,则用虚函数来表示。
p15.如果通过公有继承来产生派生类,那么这个派生类应该是基类的特化。
p19.多态并不是所有程序设计问题的解决方案。
第2章 一致性
p25.构造函数应该使得对象处于明确定义的状态。
p26.我们应该考虑使用默认参数的形式来代替函数重载的形式。
p27.用一致的方式来定义对象的状态——这需要识别出类不变性。
p29.类的接口定义应该是一致的——避免产生困惑。
p30.对于每一个new操作,都要有相应的delete操作。(由所有者负责)
p33.避免对从不使用的状态信息进行计算和存储。
p34.在定义operator = 时,我们要注意x = x这种情况。
p35.用一个通用的函数来代替重复的表达式序列。
第3章 不必要的继承
p48.我们要找出简单的抽象。
p52.我们要识别出对实现的继承;可以使用私有基类或者(更好的方法是)使用成员对象。
p54.我们应该考虑使用默认参数的形式来代替函数重载的形式。
第4章 虚函数
p61.派生类在处理继承而来的状态时必须与基类保持一致。
p62.如果在公有基类中没有定义虚析构函数,那么在所有的派生类或者派生类的数据成员中都应该没有定义析构函数。
p63.通常情况下,公有基类的析构函数应该被声明为虚函数。
p64.将共同的行为迁移到基类中。
p66.降低耦合性——将类之间的交互最小化。
p66.如果派生类之间的区别在于属性,则用数据成员来表示;如果在于行为,则用虚函数来表示。
p68.没有哪个类是完美的;过窄的设计要好于过宽的设计。
p70.我们应该考虑使用默认参数的形式来代替函数重载的形式。
第5章 运算符的重载
第6章 包装
第7章 效率
第8章 案例研究
p127.8.1示例:有限状态机
p133.要始终记住结束空字符的存在。
p135.不要使用构造函数来初始化静态数据成员。
p138.降低耦合性——将类之间的交互最小化。
p142.每个类都应该只有唯一的、内聚的功能。
p144.我们应该将类设计成抽象数据类型而不是模块类。
第9章 多重继承
…
p169.如果在客户对象中需要包含某种服务,那么我们应该使用成员对象,而不是继承。
…
此书需要有一定编码经验后,静下心来,好好看看。
<完>