《C++编程风格》学习笔记.pdf
《《C++编程风格》学习笔记.pdf》由会员分享,可在线阅读,更多相关《《C++编程风格》学习笔记.pdf(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C+编程风格(C+Programming Style)(美)Tom Cargill 著聂雪军 译第 0 章 概述由于内联函数的展开所增加的代码量甚至可能降低程序的执行速度,因为代码量的增加有可能妨碍有效的代码缓冲操作。只有当内联函数确实能够带来程序性能的提升时,才应该被用在代码中。第 1 章 抽象类实现的函数代码不应该显式地依赖于组件是否存在,而应该对每种组件进行统一的处理。(自己的理解:在类层次中,处于相同层次上的派生类,应该使他们的行为一直,这样便于对各个派生类进行统一处理)将共同的抽象提取出来并放到基类中。通常来说,对象的行为是指它对外部激励的反应。如果从对外部激励反应的角度来考察一个对
2、象,我们强调的是对象的独立性在程序的执行期间,每个对象都是程序的一个自治实体。最普遍的外部激励形式就是成员函数的调用,而对象将通过执行成员函数来作出反应,或者是完成某个功能,或者是返回一个值,或者二者都有。多态虚函数可以使得不同类型的对象对相同的外部激励产生不同的反应。一个类应该能够描述一组对象。如果派生类之间的区别在于 属性,则用数据成员来表示;如果在于行为,则用虚函数来表示。使用数据成员来表示属性之间的区别,要比使用虚函数的表示更加易于编程。如果通过公有继承来产生派生类,那么这个派生类应该是其基类的特化。将派生类之间的不同之处局限在初始化过程中(构造函数的特化)是一种使用继承的正确方法。程
3、序员们不应该只是因为C+提供了更为复杂的编程技术而放弃那些标准的和可靠的编程技术。多态并不是所有程序设计问题的解决方案。第 2 章 一致性设计一个类时,程序员通常需要从类的接口和类的实现两个方面来考虑,接口必须能够代表一致的抽象,而实现则必须使得对象在行为上与这个抽象保持一致。接口和实现可以通过不同的模型来表示对象状态,这也分别称之为逻辑状态和物理状态。逻辑状态模型通常是物理状态模型的简化,多个物理状态可以对应于一个逻辑状态。构造函数应似的对象处于明确定义的状态。通常来说,用默认参数的形式来代替函数重载的形式,可以使得程序更加易于维护。即我们应该考虑使用默认参数的形式来代替函数重载的形式。对于
4、每个类,我们都可以写出一组类不变性(class invariant)条件,在类的每个对象的生存期内,这些条件都应该是成立的。我们首先在构造函数中建立起类不变性,然后在其他成员函数中维持这个不变性,这样就在对象的整个生存期内都保持了类不变性。因此,用一致的方式来定义对象的状态这需要识别出类不变性。(可以将类不变性作为注释,写在类的定义中)类的接口定义应该是一致的避免产生困惑。避免对从不使用的状态信息进行计算和存储。即只有当信息在后续操作中需要被用到时候,才应该被存储。在定义operator=时,我们要注意 x=x 这种情况第 3 章 不必要的继承如果基类的析构函数没有被声明为虚函数,我们动态创建
5、一个派生类对象,并通过基类类型的指针来删除这个对象时,将只会调用基类的析构函数。私有继承不但能够防止基类的公有接口成为派生类公有接口的一部分,还能够防止将基类型的指针或者引用指向派生类的对象。任何对私有基类成员的访问都是非法的,同样,将任何私有基类型的指针或者引用指向派生类对象也是非法的。在私有基类中,派生类继承了所有的实现,但没有继承任何接口。而在继承公有的抽象基类时,派生类继承了所有的接口,但所继承的实现可能是不完整的或者是不存在的。我们要识别出对实现的继承;可以使用私有基类或者(更好的方法是)使用成员对象(即将私有基类作为派生类的一个数据成员)。第 4 章 虚函数类设计中的一致性:(1)
6、在接口上保持外部一致性(2)在每个对象状态的实现上保持内部一致性(3)在使用继承时,在基类以及派生类接口之间的一致性。派生类在处理继承而来的状态时,必须与基类保持一致。如果在公有基类中没有定义虚析构函数,那么在所有的派生类或者派生类的数据成员中都应该没有定义析构函数。(在多重继承时,这条规则将是不充分的)通常情况下,公有基类的析构函数应该被声明为虚函数。基类所描述的应该是基类对象和派生类对象中共同抽象的所有属性。如果在基类中包含了共同的状态和行为,那么一个简单的描述就可以服务于许多的派生类。如果我们没有识别出共同的属性并将它们放到基类中,那么这些属性在每个派生类中都将被重复定义。这种重复性将使
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+编程风格 C+ 编程 风格 学习 笔记
限制150内