C++ 語言的相關書籍分為兩大陣營。一派是把 C++ 當成傳統的 C 語言加以詮釋,依字母順序或功能分門別類,列出一票相干或不相干的函式,以 C++ 重複 C 語言的範例﹔另一派則是鼓吹 C++ 物件導向觀念背後的哲學思想,企圖灌輸初學者詭異抽象的物件理論﹔似乎一腳踏進物件的世界,天下將從此太平!事實上,情況並非如此。
C++ 是非常複雜的語言,沒有一本能夠 "一書以蔽之" 的經典著作。基本上,它是 C 語言的延伸,加入了物件導向的功能,但它又不是 "真正的" 物件導向語言,這些因素都造成學習 C++ 的困難。你可能用 C 語言就寫出物件導向的程式,也可能用 C++ 寫出反物件導向的程式。
本書只討論 C++ 的核心 (core),抽取了 C++ 語言的關鍵特性。包括抽象性(abstraction), 封裝 (encapsulation), 層級化 (hierarchy ), 和多型 (polymorphism)。這幾個寥寥數語就可以帶過的觀念,構成了 C++ 語言的基本精神:
● C++ 的類別 (class) 和 C 的結構 (struct)
● C++ 內建的資料型態
● 不使用類別的 C++ 程式
● 模稜兩可的灰色地帶與嚴格的型態規則
● 什麼是空指標?
● 參考位址 (reference) 和指標:同一個東西?
● 強大的樣版 (template)
● 利用指標, 型態欄位和 union 來模擬多型
和其他篇幅驚人的 C++ 書籍相比之下,本書的價值在於建立堅實的核心觀念,同時強調技術層面的隱密角落。剩下來的內容,就留給那些函式大全或線上參考手冊吧!
目錄
目錄
前言
第一章 物件導向程式設計與類別
物件導向程式設計
類別
第二章 不使用類別的 C++
三個基本的特性
函式的改變
嚴格的型態規則
全域變數的動態初始化
最後的列表
第三章 利用成員函式建立抽象性
抽象性
使用 struct
使用 struct 及其介面函式
使用類別及其成員函式
第四章 利用存取指定字創造封裝性
存取指定字
成員可擁有任何一種存取階層
不受限制的存取指定字
私有並不代表隱藏
Friend 類別
第五章 利用合成與衍生所建立的階層架構
合成
衍生
連鎖反應
第六章 利用建構式和解構式創造更好的抽象性
預設建構式
解構式
內建型態
階層架構和連鎖反應
隱含式預設建構式和解構式
在連鎖反應之外
直接執行
流程控制
啟動時機
第七章 利用 new 和 delete 創造更好的抽象性
動態物件
動態陣列
配置運算子的混用
realloc()
記憶體不足
第八章 參考位址
參數和引數
C 和 C++ 的傳值呼叫
C++ 的傳址呼叫
參考位址和指標之間的比較
C++ 的參考位址回傳
多載:參考位址 vs. 數值
繫結的問題
第九章 利用其它特殊的成員函式創造更好的抽象性
設定運算子
Copy 建構式
顯示一個物件
摘要
第十章 一個類別的例子
使用 int
使用靜態陣列
使用動態陣列
使用有參考計數值的字串
關於 Copy 建構式的小測驗
摘要
第十一章 利用樣版建立更好的階層架構
如何定義樣版
利用樣版來定義物件
展開樣版時必須特別注意的事
修改容器類別的元素
第十二章 利用虛擬函式創造多型
C 語言的多型
虛擬函式
C++ 的多型
深入探討虛擬函式
第十三章 深入探討多型
抽象類別
衍生的考量
虛擬的抉擇
由建構式和解構式呼叫虛擬函式
隱藏在背後的事
陷阱
第十四章 物件導向設計
實作表
範例
是一個(Is-A)、有一個(Has-A)
防禦性的實作方式
第十五章 一個範例程式
String 類別
Rule、CwRule 和 HwRule 類別
Scanner 類別
使用這個程式
原始程式碼
第十六章 未來的學習目標
const
inline
接受參數的建構式
成員初始化串列
有效率的 copy 建構式
特殊的成員函式
附錄 A C++ 的運算子
附錄 B 以數值方式回傳所面臨的問題
附錄 C 參考書目
索引
目錄
前言
第一章 物件導向程式設計與類別
物件導向程式設計
類別
第二章 不使用類別的 C++
三個基本的特性
函式的改變
嚴格的型態規則
全域變數的動態初始化
最後的列表
第三章 利用成員函式建立抽象性
抽象性
使用 struct
使用 struct 及其介面函式
使用類別及其成員函式
第四章 利用存取指定字創造封裝性
存取指定字
成員可擁有任何一種存取階層
不受限制的存取指定字
私有並不代表隱藏
Friend 類別
第五章 利用合成與衍生...
購物須知
退換貨說明:
會員均享有10天的商品猶豫期(含例假日)。若您欲辦理退換貨,請於取得該商品10日內寄回。
辦理退換貨時,請保持商品全新狀態與完整包裝(商品本身、贈品、贈票、附件、內外包裝、保證書、隨貨文件等)一併寄回。若退回商品無法回復原狀者,可能影響退換貨權利之行使或須負擔部分費用。
訂購本商品前請務必詳閱退換貨原則。