天天看点

《C++面向对象高效编程(第2版)》——导读

《C++面向对象高效编程(第2版)》——导读

c++面向对象高效编程(第2版)

面向对象软件开发已逐渐成为开发软件的首选。优秀的面向对象软件开发人员、设计人员、系统架构师对其需求与日俱增。要想成为一名成功的面向对象编程(oop)人员必须忘却(摈弃)多年来面向程序编程的习惯,从新的角度分析问题。

面向对象编程要求程序员和设计者非常熟悉一些基本范式或概念。理解这些范式是在面向对象软件领域打下牢固基础的基本要求。支持oop的语言都必须支持这些基本范式。换言之,学习oop,简单地说,就是学习许多语言(如c++,eiffel,smalltalk,java等)所支持的强大范式。本书的第一个目标是,让你在不过分深入语言语法要素的前提下,理解面向对象编程最重要的概念和原则。第一部分——概念、实践和应用,将涵盖这方面的内容。

掌握支持oop的语言语法和学习oop的概念不一样。对基本oop范式一无所知的人,也能成为c++或java的佼佼者。但是,理解oop基本概念的人可以在任何支持oop的语言中有效地使用这些概念。而且,他/她还知道何时加入特定的概念。任何掌握链表概念的人都会发现,它是在pascal、c或modula-2中实现链表的基础。比方说,如果你知道如何游泳,就可以在湖泊、池塘或游泳池中游泳。语言只是一个帮助你实现最终目标的载体。

<a href="https://yq.aliyun.com/articles/93571">1.1 背景</a>

<a href="https://yq.aliyun.com/articles/93574">1.2 理解对象模型</a>

<a href="https://yq.aliyun.com/articles/93578">1.3 术语</a>

<a href="https://yq.aliyun.com/articles/93586">1.4 理解消息、方法和实例变量</a>

<a href="https://yq.aliyun.com/articles/93590/">1.5 什么可以作为类</a>

<a href="https://yq.aliyun.com/articles/93597">1.6 什么不是类</a>

<a href="https://yq.aliyun.com/articles/93601">1.7 类的目的</a>

<a href="https://yq.aliyun.com/articles/93606">1.8 深入了解对象</a>

<a href="https://yq.aliyun.com/articles/93608">1.9 面向对象软件开发的阶段</a>

<a href="https://yq.aliyun.com/articles/93611/">1.10 面向对象编程(oop)</a>

<a href="https://yq.aliyun.com/articles/93618">1.11 对象模型的关键要素</a>

<a href="https://yq.aliyun.com/articles/93621">1.12 oop 范式和语言</a>

<a href="https://yq.aliyun.com/articles/93626">1.13 面向对象编程语言的要求</a>

<a href="https://yq.aliyun.com/articles/93628">1.14 对象模型的优点</a>

<a href="https://yq.aliyun.com/articles/93633">1.15 小结</a>

<a href="https://yq.aliyun.com/articles/93642">2.1 接口和实现的分离</a>

<a href="https://yq.aliyun.com/articles/93647">2.2 对象接口的重要性</a>

<a href="https://yq.aliyun.com/articles/93650">2.3 实现的含义</a>

<a href="https://yq.aliyun.com/articles/93655/">2.4 保护实现</a>

<a href="https://yq.aliyun.com/articles/93658">2.5 数据封装的优点</a>

<a href="https://yq.aliyun.com/articles/93659">2.6 接口、实现和数据封装之间的关系</a>

<a href="https://yq.aliyun.com/articles/93660">2.7 数据封装注意事项</a>

<a href="https://yq.aliyun.com/articles/93661">2.8 确定封装的内容</a>

<a href="https://yq.aliyun.com/articles/93665">2.9 抽象数据类型</a>

<a href="https://yq.aliyun.com/articles/93668">2.10 抽象数据类型—栈的实现</a>

<a href="https://yq.aliyun.com/articles/93671">2.11 c++中的数据抽象</a>

<a href="https://yq.aliyun.com/articles/93676">2.12 类中的访问区域</a>

<a href="https://yq.aliyun.com/articles/93679">2.13 和类一起使用的术语</a>

<a href="https://yq.aliyun.com/articles/93683">2.14 类的实现者</a>

<a href="https://yq.aliyun.com/articles/93687">2.15 实现成员函数</a>

<a href="https://yq.aliyun.com/articles/93693">2.16 识别成员函数的目标对象</a>

<a href="https://yq.aliyun.com/articles/93704/">2.17 程序示例</a>

<a href="https://yq.aliyun.com/articles/93706">2.18 对象是重点</a>

<a href="https://yq.aliyun.com/articles/93708">2.19 对接口的再认识</a>

<a href="https://yq.aliyun.com/articles/93712">2.20 什么是多线程安全类</a>

<a href="https://yq.aliyun.com/articles/93718/">2.21 确保抽象的可靠性——类不变式和断言</a>

<a href="https://yq.aliyun.com/articles/93740">2.22 面向对象设计的表示法</a>

<a href="https://yq.aliyun.com/articles/93743/">2.23 booch 表示法</a>

<a href="https://yq.aliyun.com/articles/93754">2.24 booch 中类的关系</a>

<a href="https://yq.aliyun.com/articles/93756">2.25 统一建模语言(uml)</a>

<a href="https://yq.aliyun.com/articles/93767">2.26 uml 中类的关系</a>

<a href="https://yq.aliyun.com/articles/93771">2.27 关联</a>

<a href="https://yq.aliyun.com/articles/93776">2.28 组合</a>

<a href="https://yq.aliyun.com/articles/93780">2.29 泛化关系(is-a)</a>

<a href="https://yq.aliyun.com/articles/93793">2.30 has-a关系的重要性</a>

<a href="https://yq.aliyun.com/articles/93822">2.31 小结</a>

<a href="https://yq.aliyun.com/articles/93828">3.1 类概念的基础</a>

<a href="https://yq.aliyun.com/articles/93836">3.2 类要素的细节</a>

<a href="https://yq.aliyun.com/articles/93712">3.3 复制构造函数</a>

<a href="https://yq.aliyun.com/articles/93873">3.4 赋值操作符</a>

<a href="https://yq.aliyun.com/articles/93882/">3.5 this 指针和名称重整的进一步说明</a>

<a href="https://yq.aliyun.com/articles/93894">3.6 const 成员函数的概念</a>

<a href="https://yq.aliyun.com/articles/93897">3.7 编译器如何实现const 成员函数</a>

<a href="https://yq.aliyun.com/articles/93901">3.8 c++中类和结构的区别</a>

<a href="https://yq.aliyun.com/articles/93907">3.9 类可以包含什么</a>

<a href="https://yq.aliyun.com/articles/93909">3.10 设计期间的重点——类的接口</a>

<a href="https://yq.aliyun.com/articles/93913">3.11 类名、成员函数名、参数类型和文档</a>

<a href="https://yq.aliyun.com/articles/93920">3.12 参数传递模式——客户的角度</a>

<a href="https://yq.aliyun.com/articles/93929">3.13 采用语义</a>

<a href="https://yq.aliyun.com/articles/93932">3.14 为参数选择正确的模式</a>

<a href="https://yq.aliyun.com/articles/93940">3.15 函数返回值</a>

<a href="https://yq.aliyun.com/articles/93945">3.16 从函数中返回引用</a>

<a href="https://yq.aliyun.com/articles/93952">3.17 编写内存安全类</a>

<a href="https://yq.aliyun.com/articles/93979">3.18 客户对类和函数的责任</a>

<a href="https://yq.aliyun.com/articles/93982/">3.19 小结</a>

<a href="https://yq.aliyun.com/articles/93994">4.1 什么是初始化</a>

<a href="https://yq.aliyun.com/articles/94005">4.2 无用单元收集问题</a>

<a href="https://yq.aliyun.com/articles/94014">4.3 c++中的无用单元收集</a>

<a href="https://yq.aliyun.com/articles/94020/">4.4 对象的标识</a>

<a href="https://yq.aliyun.com/articles/94025">4.5 对象复制的语义</a>

<a href="https://yq.aliyun.com/articles/94032/">4.6 对象赋值的语义</a>

<a href="https://yq.aliyun.com/articles/94042">4.7 对象相等的语义</a>

<a href="https://yq.aliyun.com/articles/94049">4.8 为什么需要副本控制</a>

<a href="https://yq.aliyun.com/articles/94056">4.9 分析</a>

<a href="https://yq.aliyun.com/articles/94071">4.10 “写时复制”的概念</a>

<a href="https://yq.aliyun.com/articles/94081">4.11 类和类型</a>

<a href="https://yq.aliyun.com/articles/94089">4.12 小结</a>