C++編程實例詳解 內容簡介
本書通過導讀者創建並逐步豐富完善一個成果,全面介紹了C++程式設計的方法和技巧。作者首先假定讀者並不了解程式設計的所有知識,整個程式開發過程均從原始的概念開始到程式設計的實現,從零開始意味著從最最低級的地方起步,沒有任何預備知識。因此無論是對於初學C++的人,還是套用C++的高手都具有較高的實用價值。C++編程實例詳解 本書前言
歡迎使用Jesse Liberty程式設計從零開始系列叢書。我創建該系列叢書緣於傳統的入門教材不能滿足每個學生的需要,一個典型的具有介紹性的電腦程式設計教材以一種邏輯的順序講授一些編程技術,當讀者學習完一個題目之後,該教材便竭力講述該方法如何被套用,此法對於大多數人而言效果不錯,然而卻不適應每個人。
我已給10000多名學生講授過程式設計:以小班的形式,或者大班的形式,或者通過Internet。許多學生告訴我說他們只是希望與一個專家一同坐在計算機前進行程式設計。他們並不希望在那裡一步一步講述程式的設計方法,而是喜歡創建一個成果並在他們創建成果的過程中學習所需要的技能。
正因如此便有了程式設計從零開始叢書的誕生。在每一本這樣的書中,一個老道的專家將指導你設計並完成一個複雜的程式編寫,完全是從頭開始一步講解所需的技能。
你可以針對某一專題首先閱讀該書,或者首先閱讀一本更為傳統的入門書,然後將該書作為補充讀本。上述兩種方法均可,你可依據自己的喜好方式選擇更好的一種。
該套系列叢書共同遵守一個約定,即整個程式開發過程均從原始的概念開始到程式設計的實現,我們並不假定讀者已經了解了程式設計的所有知識,從零開始意味著從最最低級的地方起步,沒有任何預備知識。
我並沒有親自去寫該叢書的每一本,但作為該列叢書的編輯,我對每本書都具有一種強烈的個人責任感。在我的Web站點上,提供了一些參考資料以及一個討論組。如果有疑問或有關注的話題,歡迎寫信給我。
關於作者
Jesse Liberty是世界上銷售最好的《21天自學C++》和《24小時自學C++》兩本書以及其他關於C++和面向對象程式設計書籍的作者。他是第一份C++語言雜誌《C++報導》每月的專欄作者。他還是Liberty Associate公司總裁,這是一家為面對象軟體開發專門提供線上培訓、指導、諮詢和承接程式設計的公司。
Jesse曾經是AT&T傑出的軟體工程師和城市銀行電子投遞部副總裁。他和他的妻子Stacey,他的女兒Robin 和Rachel,他的狗Milo以及他的貓Fred一起生活在麻薩諸塞州的劍橋區。可通過國際網際網路[email protected]訪問到他,Jesse通過他的站點www.libetryassociat.com為他的書提供劫持。
獻詞
謹以此書獻給stacey,Robin,Rachel,Tracy,Holly,Donald,Hugh,Sara,JoAnna以及Que小組。
致謝
雖然書的封面上是我的名字,但此書確由Que小組那些富有貢獻的人們所創作,其中包括Tracy Dunkelberger,Holly Allender,他們是最優秀的編輯和最好的人,與他們共事我感到非常愉快,是他們使我樹立起信心,尤其是在Macmillan。在Que中還有一些辛勤工作的人們,他們是Hugh Vandivier,JoAnna Kremer和Sara Bosin,所有這些人們同心協力,使本書更趨完善,榮譽是屬於他們的,而疏漏的責任卻在於我,因此請傳送電子郵件與我聯繫。
我必須感謝Donald Xie,雖然從未謀面,但我卻與他一同工作了好多年,因而我對他的敬仰與日俱增,他創造了奇蹟,使我和從前比起來還算是一個不錯的程式設計師。
特別的感謝還應獻給Dean Miller 和Richard Swadley,正是Richard給予了從零開始系統叢書的初始動力,而Dean使其成為現實,因此我要由衷地感謝他們。
還要感謝200,000多以前購買我書的人們,最後也應感謝你,親愛的讀者,站在書架旁翻閱,決定此書是否適合你,自然,前去買下此書,拿回家中,仔細閱讀,這樣你我都不亦樂乎。
告訴我們你的想法
作為本書的讀者,你是我們最重要的批評家和評論員,我們將非常重視你的觀點,以便知道我們將要做什麼,如何做得更好,以及你們希望我們出版哪些方面的內容,還懇請你們提出任何有價值的意見。
作為Macmillan計算機出版業Que出版社的聯合發行人,我歡迎你們提出意見,你們可以發傳真、電子郵件或直接致信給我,讓我了解你們喜歡還是不喜歡這本書,同時也可讓我知道如何才能使我們所寫的書越來越好。
請注意我不能向你們解答有關該書的技術問題,那樣我將收到大量的電子郵件、我恐怕不能一一回答每個問題。
寫信時,請註明書的名稱及作者, 還要寫清你的姓名、電話號碼或者傳真號碼。我將認真對待你的意見,並與該書的作者與編輯共同探討。
C++編程實例詳解 本書目錄
第1章 C++導論
程式
解決問題
過程化、結構化和面向對象編程
什麼C++?
為什麼需要面向對象編程?
對付複雜性
對象
壓縮
衍生
特殊性
普遍性和多樣性
三個支柱
如何進行面向對象和設計
小基礎上的面向對象分析和設計
想像力
Decryptix!---想像力
想像
需求分析
快而亂的設計
實施
程式和原始碼
編譯器
你的開發環境
文本編輯
編譯原始碼
使用連線器建立執行檔
開發周期
編譯錯誤
發布
下一步
第2章 開始
小基礎上有多大?
為什麼小基礎上是唯一好的教程
依靠你的知識
創建項目
檢查代碼
分析代碼
名字空間
代碼調試
返回一個值
Main進一步的意義
使用cout列印到螢幕
特殊列印字元
變數
變數類型
定義變數
區分大小寫
關鍵字
一次建立多個變數
指定變數值
作用域
字元與數字
整數長度
使用整數變數
有符號位和無符號位
循環無符號整數
循環有符號整數
常量
字母型常量
符號型常量
用#define定義常量
用const定義常量
第3章 程式流
建立健壯性
你試圖完成什麼?
用循環解決問題
塊和複合語句
邏輯運算符
邏輯或運算符
邏輯與運算符
if語句
邏輯非運算符
快捷評估
關係優先
混合使用
do while
枚舉常量
返回代碼
來自用戶的布爾應答
等於運算符
else
條件(或三元)運算符
綜合
第4章 建立類
類是什麼?
建立新的類型:類
界面與工具
客戶
查看代碼
聲明類
類和對象
成員變數
成員方法或函式
對象的長度
檔案
構造函式
實現方法
包含頭
實現構造函式
初始化
使用調試器
查看構造函式
其他方法
保存模式
什麼是數組?
數組初始化
初始化字元數組
C風格字元串
數組元素
超出數組結尾的寫入
生成方案
查看定義值檔案
第5章 玩遊戲
inline實現
常量成員方法
簽名
引用傳遞和數值傳遞
分析
引用和通過引用傳遞
指針
指針是什麼?
存儲器定址
間接引用
直接得到運算符
數組
指針與常量
數組作為指針
數組作為指針傳遞
使用斷言
斷言如何工作
宏
為什麼使用圓括弧?
宏與函式比較
連線
預定義宏
第6章 使用連線列表
動態數據結構
標準模板庫
連線列表
了解連線列表
簡單的驅動列表
Howmany()方法
詳述insert()
了解棧
棧與函式
使用new
new和delete
在decryptix!使用簡單的連線列表
運行
玩遊戲
用成員方法解決問題
運算符重載
完成運算重載
通過數值傳遞
為什麼引用
第7章 典型方法
形類
重載構造函式
miranda方法
何時可得到編譯器提供的構造函式?
預設析構函式
預設拷貝構造函式為什麼無效?
寫自己擁有的拷貝構造函式
賦值運算符
何時類似賦值而何時又不類似
回到連線列表
第8章 使用多態性
特殊性
特殊性的優越性
多態性
抽象數據類型
C++如何實現這些類
繼承性語法
替換函式
虛擬方法
虛擬函式
虛擬取消器
實現多態性
增加第二個字母
第9章 實現模板
創建歷史
載入的操作符
向cout中寫類數據
友函式
頭檔案中的定義
首先創建非參數化類型
模板實例化
使用歷史對象
立即實現
第10章 使用標準模板庫
將代碼轉換為STL
集合類
使用向量
為什麼一個字元向量不是一個串?
檢查輸出
初始化Game
play()方法
顯示一個向量的內容
對Guess評分
創建歷史
Showhistory()
檢查提示
第11章 計算機猜測
允許計算機學會猜測
查找規律
解碼類
遊戲實現
無限循環
遊戲者猜測
遊戲者如何玩遊戲
計算機猜測
跳至Verify computerchoices()
創建Computer對象
第12章 分配職責
分配職責
分析
理解預設參數
仔細分析Smartchar
監視其工作
Computer運行
創建一個聰明的字元串
Computer:play
生成Guesses:回顧
猜測一致否?
產生一個猜測,詳解
Canelminatecharacters的邏輯
Canelminatecharacters細節
Canelminatecharacters
Isconsistent的細節
靜態成員變數
靜態效果
繼續分析
刪除在位字元
第13章 持久性
持久性
對象的持久性
保存的不同方式
設計持久性
Reader和writer
用戶接口問題
編寫遊戲
一步步編寫遊戲
寫多態對象
第14章異常處理
當異常發生時
退棧
從磁碟讀取對象
恢復Human
第15章 下一步
下一步
讀另一本啟蒙書?
支持新聞組
保持聯繫