本書是一本C++編程方面的優(yōu)秀教程,全面地介紹了過程式編程與面向?qū)ο缶幊痰脑砗头椒,?xì)致地分析了各種性能問題、移植性問題和可能出錯的地方,介紹了如何提高軟件工程質(zhì)量,并提供了豐富的自測練習(xí)和項目練習(xí)。可以說本書是非常好的學(xué)習(xí)C++語言的教程之一,是學(xué)習(xí)C++的"寶典”。
選自國外暢銷多年的經(jīng)典的編程教材系列。經(jīng)過幾十年的更新與完善,內(nèi)容精煉,例題豐富,代碼成熟,并提供有效的學(xué)習(xí)方法。適合學(xué)校教學(xué)與自學(xué)的優(yōu)秀教材。
張引,浙江大學(xué)計算機科學(xué)與技術(shù)學(xué)院副教授,1999年于浙江大學(xué)計算機系取得計算機應(yīng)用博士學(xué)位并留校工作至今。主要研究領(lǐng)域為圖形圖像、模式識別、數(shù)據(jù)分析與挖掘、知識表達(dá)與發(fā)現(xiàn)。 Paul Deitel和Harvey Deitel是全球暢銷的編程語言教材和專業(yè)圖書作家,“How to Program”系列是其*負(fù)盛名的一套計算機編程教材,已經(jīng)銷售近40年,并被翻譯成中文在內(nèi)的十幾種語言。他們成立的Deitel & Associates公司是一家國際知名的企業(yè)培訓(xùn)和寫作公司,專門進行計算機編程語言、對象技術(shù)、移動應(yīng)用開發(fā)及Internet和Web軟件技術(shù)方面的培訓(xùn)和寫作,出版了一流的編程專業(yè)的大學(xué)教材、 專業(yè)圖書以及LiveLessons視頻課程。
第1章 計算機和C++簡介
1.1簡介
1.2計算機和互聯(lián)網(wǎng)在工業(yè)和研究領(lǐng)域中的應(yīng)用
1.3硬件和軟件
1.4數(shù)據(jù)的層次結(jié)構(gòu)
1.5機器語言、 匯編語言和高級語言
1.6 C++
1.7程序設(shè)計語言
1.8對象技術(shù)介紹
1.9典型的C++程序開發(fā)環(huán)境
1.10試運行一個C++應(yīng)用程序
1.11操作系統(tǒng)
1.12互聯(lián)網(wǎng)和萬維網(wǎng)
1.13軟件開發(fā)的一些關(guān)鍵術(shù)語
1.14 C++11和開源的Boost庫
1.15與信息技術(shù)與時俱進
1.16 Web資源
第2章 C++編程入門、 輸入/輸出和運算符
2.1簡介
2.2第一個C++程序: 輸出一行文本
2.3修改第一個C++程序
2.4另一個C++程序: 整數(shù)相加
2.5內(nèi)存的概念
2.6算術(shù)運算
2.7判斷: 相等運算符和關(guān)系運算符
2.8本章小結(jié)
第3章 類、 對象和字符串的介紹
3.1簡介
3.2定義具有成員函數(shù)的類
3.3定義具有形參的成員函數(shù)
3.4數(shù)據(jù)成員、 set成員函數(shù)和get成員函數(shù)
3.5使用構(gòu)造函數(shù)初始化對象
3.6一個類對應(yīng)一個獨立文件的可復(fù)用性
3.7接口與實現(xiàn)的分離
3.8用set函數(shù)確認(rèn)數(shù)據(jù)的有效性
3.9本章小結(jié)
第4章 控制語句(第I部分)、 賦值、 自增和自減運算符
4.1簡介
4.2算法
4.3偽代碼
4.4控制結(jié)構(gòu)
4.5 if選擇語句
4.6 if...else雙路選擇語句
4.7 while循環(huán)語句
4.8算法詳述: 計數(shù)器控制的循環(huán)
4.9算法詳述: 標(biāo)記控制的循環(huán)
4.10算法詳述: 嵌套的控制語句
4.11賦值運算符
4.12自增和自減運算符
4.13本章小結(jié)
第5章 控制語句(第II部分)和邏輯運算符
5.1簡介
5.2計數(shù)器控制的循環(huán)的要素
5.3 for循環(huán)語句
5.4使用for語句的例子
5.5 do...while循環(huán)語句
5.6 switch多路選擇語句
5.7 break和continue語句
5.8邏輯運算符
5.9 ==運算符與=運算符的混淆問題
5.10結(jié)構(gòu)化編程小結(jié)
5.11本章小結(jié)
第6章 函數(shù)和遞歸入門
6.1簡介
6.2 C++的程序組件
6.3數(shù)學(xué)庫函數(shù)
6.4具有多個形參的函數(shù)定義
6.5函數(shù)原型和實參類型的強制轉(zhuǎn)換
6.6C++標(biāo)準(zhǔn)庫頭文件
6.7實例研究: 隨機數(shù)生成
6.8實例研究: 博彩游戲和枚舉類型簡介
6.9C++11的隨機數(shù)
6.10存儲類別和存儲期
6.11作用域規(guī)則
6.12函數(shù)調(diào)用堆棧和活動記錄
6.13無形參的函數(shù)
6.14內(nèi)聯(lián)函數(shù)
6.15引用和引用形參
6.16默認(rèn)實參
6.17一元的作用域分辨運算符
6.18函數(shù)重載
6.19函數(shù)模板
6.20遞歸
6.21遞歸應(yīng)用示例: Fibonacci數(shù)列
6.22遞歸與迭代
6.23本章小結(jié)
第7章 類模板array和vector、 異常捕獲
7.1簡介
7.2 array對象
7.3 array對象的聲明
7.4使用array對象的例子
7.5基于范圍的for語句
7.6實例研究: 利用array對象存放成績的GradeBook類
7.7 array對象的排序與查找
7.8多維array對象
7.9實例研究: 利用二維array對象的GradeBook類
7.10 C++標(biāo)準(zhǔn)庫類模板vector的介紹
7.11本章小結(jié)
第8章 指針
8.1簡介
8.2指針變量的聲明和初始化
8.3指針運算符
8.4使用指針的按引用傳遞方式
8.5內(nèi)置數(shù)組
8.6使用const修飾指針
8.7 sizeof運算符
8.8指針表達(dá)式和指針?biāo)阈g(shù)運算
8.9指針和內(nèi)置數(shù)組之間的關(guān)系
8.10基于指針的字符串
8.11本章小結(jié)
第9章 類的深入剖析: 拋出異常
9.1簡介
9.2 Time類實例研究
9.3類的作用域和類成員的訪問
9.4訪問函數(shù)和工具函數(shù)
9.5 Time類實例研究: 具有默認(rèn)實參的構(gòu)造函數(shù)
9.6析構(gòu)函數(shù)
9.7何時調(diào)用構(gòu)造函數(shù)和析構(gòu)函數(shù)
9.8 Time類實例研究: 微妙的陷阱――返回private數(shù)據(jù)成員的引用或指針
9.9默認(rèn)的逐個成員賦值
9.10 const對象和const成員函數(shù)
9.11組成: 對象作為類的成員
9.12 friend函數(shù)和friend類
9.13使用this指針
9.14 static類成員
9.15本章小結(jié)
第10章 運算符重載: string類
10.1簡介
10.2使用標(biāo)準(zhǔn)庫中string類的重載運算符
10.3運算符重載的基礎(chǔ)知識
10.4重載二元運算符
10.5重載二元流插入運算符和流提取運算符
10.6重載一元運算符
10.7重載一元前置與后置運算符: ++和--
10.8實例研究: Date類
10.9動態(tài)內(nèi)存管理
10.10實例研究: Array類
10.11運算符作為成員函數(shù)和非成員函數(shù)的比較
10.12類型轉(zhuǎn)換
10.13 explicit構(gòu)造函數(shù)與轉(zhuǎn)換運算符
10.14重載函數(shù)調(diào)用運算符()
10.15本章小結(jié)
第11章 面向?qū)ο缶幊蹋?繼承
11.1簡介
11.2基類和派生類
11.3基類和派生類之間的關(guān)系
11.4派生類中的構(gòu)造函數(shù)和析構(gòu)函數(shù)
11.5 public、 protected和private繼承
11.6繼承與軟件工程
11.7本章小結(jié)
第12章 面向?qū)ο缶幊蹋?多態(tài)性
12.1簡介
12.2多態(tài)性介紹: 多態(tài)視頻游戲
12.3類繼承層次中對象之間的關(guān)系
12.4類型域和switch語句
12.5抽象類和純virtual函數(shù)
12.6實例研究: 應(yīng)用多態(tài)性的工資發(fā)放系統(tǒng)
12.7(選讀)多態(tài)性、 virtual函數(shù)和動態(tài)綁定的底層實現(xiàn)機制
12.8實例研究: 應(yīng)用向下強制類型轉(zhuǎn)換、 dynamic_cast、 typeid和type_info并使用
多態(tài)性和運行時類型信息的工資發(fā)放系統(tǒng)
12.9本章小結(jié)
第13章 輸入/輸出流的深入剖析
13.1簡介
13.2流
13.3輸出流
13.4輸入流
13.5使用read、 write和gcount的非格式化的I/O
13.6流操作符簡介
13.7流的格式狀態(tài)和流操作符
13.8流的錯誤狀態(tài)
13.9將輸出流連接到輸入流
13.10本章小結(jié)
第14章 文件處理
14.1簡介
14.2文件和流
14.3創(chuàng)建順序文件
14.4從順序文件讀取數(shù)據(jù)
14.5更新順序文件
14.6隨機存取文件
14.7創(chuàng)建隨機存取文件
14.8向隨機存取文件隨機寫入數(shù)據(jù)
14.9從隨機存取文件順序讀取數(shù)據(jù)
14.10實例研究: 事務(wù)處理程序
14.11對象序列化
14.12本章小結(jié)第15章標(biāo)準(zhǔn)庫的容器和迭代器
15.1標(biāo)準(zhǔn)模板庫(STL)簡介
15.2容器簡介
15.3迭代器簡介
15.4算法簡介
15.5序列容器
15.6關(guān)聯(lián)容器
15.7容器適配器
15.8 bitset類
15.9本章小結(jié)
第16章 標(biāo)準(zhǔn)庫算法
16.1簡介
16.2對迭代器的最低要求
16.3算法
16.4函數(shù)對象
16.5 lambda表達(dá)式
16.6標(biāo)準(zhǔn)庫算法總結(jié)
16.7本章小結(jié)
第17章 異常處理深入剖析
17.1簡介
17.2實例: 處理除數(shù)為0的異常處理
17.3重新拋出異常
17.4堆棧展開
17.5什么時候使用異常處理
17.6構(gòu)造函數(shù)、 析構(gòu)函數(shù)和異常處理
17.7異常與繼承
17.8處理new失敗
17.9類uique_ptr和動態(tài)內(nèi)存分配
17.10標(biāo)準(zhǔn)庫的異常類層次結(jié)構(gòu)
17.11本章小結(jié)
第18章 自定義模板的介紹
18.1簡介
18.2類模板
18.3使用函數(shù)模板來操作類模板特化的對象
18.4非類型形參
18.5模板類型形參的默認(rèn)實參
18.6重載函數(shù)模板
18.7本章小結(jié)
第19章 自定義的模板化數(shù)據(jù)結(jié)構(gòu)
19.1簡介
19.2自引用類
19.3鏈表
19.4堆棧
19.5隊列
19.6樹
19.7本章小結(jié)
第20章 查找與排序
20.1簡介
20.2查找算法
20.3排序算法
20.4本章小結(jié)
第21章 string類和字符串流處理的深入剖析
21.1簡介
21.2字符串的賦值和連接
21.3字符串的比較
21.4子串
21.5交換字符串
21.6 string類的特征
21.7查找字符串中的子串和字符
21.8在字符串中替換字符
21.9在字符串中插入字符
21.10轉(zhuǎn)換成C風(fēng)格的基于指針的char字符串
21.11迭代器
21.12字符串流處理
21.13 C++11數(shù)值轉(zhuǎn)換函數(shù)
21.14本章小結(jié)
第22章 位、 字符、 C字符串和結(jié)構(gòu)體
22.1簡介
22.2結(jié)構(gòu)體的定義
22.3 typedef
22.4示例: 洗牌和發(fā)牌模擬
22.5位運算符
22.6位域
22.7字符處理庫
22.8 C字符串操作函數(shù)
22.9 C字符串轉(zhuǎn)換函數(shù)
22.10 C字符串操作庫中的搜索函數(shù)
22.11 C字符串操作庫中的內(nèi)存函數(shù)
22.12本章小結(jié)
第23章 其他主題
23.1簡介
23.2 const_cast運算符
23.3 mutable類成員
23.4命名空間
23.5運算符關(guān)鍵字
23.6指向類成員的指針(.和->)
23.7多重繼承
23.8多重繼承和virtual基類
23.9本章小結(jié)
附錄A運算符的優(yōu)先級與結(jié)合律
附錄B ASCII字符集
附錄C基本數(shù)據(jù)類型
附錄D計數(shù)系統(tǒng)
附錄E預(yù)處理器索引