天天看點

《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>