《C++编程风格》学习笔记.pdf

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《C编程风格》学习笔记

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

文档评论(0)

hhuiws1482 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:5024214302000003

1亿VIP精品文档

相关文档