內容介紹
奧弗蘭編著的《好學的C++(第2版)》以C++為背景講述計算機編程,用示例強化理解、條分縷析C++,給出了經驗總結和各語言特性的緣由和技巧。內容包括C++編程基礎知識、如何獨立編程、程式片段的功能及來由、創建實用和可重用代碼、面向對象編程等。《好學的C++(第2版)》簡單易懂,適合C++初學者閱讀。
作者介紹
Brian Overland具有豐富的編程和教學經驗。在微軟工作的10年間,他既是項目負責人,又寫過C++程式和文檔。這一獨特的背景造就了其語言生動、用詞精 確的寫作風格,深知如何用淺顯和清晰的方式講授抽象的知識和特性。他出版了6本編程類圖書,其中包括C++ in Plain English, Third Edition。作品目錄
第1 章第一個C++程式11.1像程式設計師那樣思考1
1.2C++有什麼與眾不同之處5
1.3建立C++程式6
1.4安裝C++編譯器8
1.5前進到下一行13
1.6保存數據:C++變數15
1.7數據類型簡介16
1.8變數名和關鍵字23
1.9小結24
第2 章判斷,再判斷26
2.1數據類型26
2.2程式中的判斷27
2.3循環語句34
2.4C++中的真與假39
2.5遞增操作符40
2.6語句與表達式41
2.7布爾(短路)邏輯42
2.8math 庫簡介45
2.9小結50
第3 章一專多能的for 語句52
3.1用於計數的循環52
3.2for 循環簡介53
3.3for 語句用法示例54
3.4for 語句的複合語句語法57
3.5臨時聲明循環變數58
3.6它山之石:Basic 語言中的for 語句62
3.7小結63
第4 章函式——分工與合作64
4.1函式的概念64
4.2函式的基本使用套路65
4.3局部變數和全局變數72
4.4遞歸函式74
4.5遊戲,更多的遊戲88
4.6小結90
第5 章數組——都給我排好隊92
5.1初識C++數組92
5.2數組初始化93
5.3從零開始的下標94
5.4字元串和字元串數組101
5.5經驗之談111
5.6二維數組——矩陣112
5.7小結113
第6 章指針——我知道數據在哪裡114
6.1指針到底是什麼114
6.2指針的概念114
6.3聲明和使用指針116
6.4swap——另一個使用指針的函式122
6.5指針運算127
6.6指針與數組處理129
6.7小結132
第7 章字元串——分析文本134
7.1字元串的存儲方式134
7.2字元串的聲明和初始化136
7.3字元串處理函式137
7.4讀取字元串輸入141
7.5單個字元與字元串147
7.6C++中的string 類型150
7.7string 類型上的其他操作154
7.8小結155
第8 章檔案——電子存儲157
8.1檔案流對象簡介157
8.2引用磁碟檔案159
8.3文本檔案與二進制檔案164
8.4二進制操作簡介166
8.5小結173
第9 章一些高級編程技術175
9.1命令行參數175
9.2函式重載179
9.3do-while 循環183
9.4switch-case 語句184
9.5多模組185
9.6異常處理:出問題找我188
9.7小結191
第10 章C++0x 的新功能193
10.1C++0x 功能概述193
10.2long long 類型194
10.3基於範圍的for 203
10.4auto 和decltype 關鍵字208
10.5nullptr 關鍵字209
10.6強類型枚舉210
10.7純字元串字面值217
10.8小結218
第11 章進入類的世界——Fraction類220
11.1面向對象:準智慧型數據類型220
11.2Point:一個簡單的類222
11.3private 關鍵字:成員專用(保護數據) 224
11.4Fraction 類簡介228
11.5內嵌函式230
11.6尋找最大公約數231
11.7尋找最低公倍數232
11.8小結242
第12 章構造器——你的地盤你做主244
12.1構造器簡介244
12.2多個構造器(重載) 245
12.3僅限C++0x:在類聲明里初始化成員246
12.4默認構造器247
12.5僅限C++0x:代理構造器 249
12.6僅限C++0x:統一的初始化語法 250
12.7引用變數和輸入參數(&) 255
12.8副本構造器 257
12.9從字元串到分數的構造器 261
12.10小結263
第13 章操作符函式:對象也運算 265
13.1類操作符函式簡介265
13.2聲明操作符函式為全局函式267
13.3用引用來提高效率269
13.4操作符函式的重載277
13.5類賦值操作符277
13.6“等於”比較操作符函式278
13.7類與流:operator<<函式279
13.8僅限C++0x:用戶定義字面值 284
13.9小結286
第14 章動態記憶體和String 類289
14.1動態記憶體:new 關鍵字289
14.2對象和new 關鍵字290
14.3為多個數據分配記憶體 292
14.4類的析構器295
14.5深複製和副本構造器 300
14.6this 關鍵字301
14.7再論賦值操作符302
14.8編寫字元串合併函式 304
14.9小結308
第15 章兩個完整的OOP 編程示例 310
15.1鍊表簡介 310
15.2漢諾塔動畫版 321
15.3小結328
第16 章STL 庫——讓編程不再困難 330
16.1list 模板簡介330
16.2設計RPN 計算器338
16.3尖括弧的正確解釋 346
16.4小結346
第17 章繼承——推陳出新348
17.1繼承方式348
17.2FloatFraction 類存在的問題352
17.3僅限C++0x:繼承基類的構造器353
17.4protected 成員356
17.5對象包含357
17.6深思熟慮的繼承方案359
17.7小結361
第18 章多態——讓對象獨立自主363
18.1FlaotFraction 類的另一種實現辦法363
18.2虛函式簡介364
18.3僅限C++0x:必須明確地進行覆蓋369
18.4純虛函式和其他抽象概念370
18.5抽象類和接口371
18.6面向對象與輸入和輸出流372
18.7寫在最後377
18.8結束語378
18.9小結379
附錄A操作符381
A.1範圍操作符383
A.2sizeof 操作符384
A.3老式和新式的強制類型轉換384
A.4整數除法與浮點數除法385
A.5位操作符(&、|、^、~、<<和>>)386
A.6條件操作符386
A.7賦值操作符387
A.8並置操作符387
附錄B數據類型388
B.1數據類型的精度389
B.2數值型字面值的數據類型389
B.3字元串字面值和轉義序列390
B.4帶符號整數的二進制補碼391
附錄C語法匯總393
C.1基本表達式393
C.2基本語句394
C.3控制結構和分支語句394
C.4變數聲明399
C.5函式聲明401
C.6類聲明402
C.7枚舉類型聲明403
附錄D預處理器指令405
D.1#define 指令405
D.2## 操作符(合併)406
D.3defined 函式406
D.4#elif 指令407
D.5#endif 指令407
D.6#error 指令407
D.7#if 指令408
D.8#ifdef 指令408
D.9#ifndef 指令409
D.10#include 指令409
D.11#line 指令410
D.12#undef 指令410
D.13預定義常數410
附錄EASCII 編碼411
附錄F標準庫函式414
F.1字元串(C 字元串)函式414
F.2數據轉換函式415
F.3單字元函式415
F.4數學函式416
F.5隨機函式417
F.6時間函式417
F.7strftime 函式的輸出格式419
附錄GI/O 流對象和類421
G.1控制台流對象421
G.2I/O 流的處理符422
G.3輸入流函式423
G.4輸出流函式423
G.5檔案I/O 函式423
附錄HSTL 類和對象426
H.1STL 庫string 類426
H.2<list>模板428
H.3<stack>模板429
附錄I術語表431