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