白話C++之練功 版權(quán)信息
- ISBN:9787512429307
- 條形碼:9787512429307 ; 978-7-5124-2930-7
- 裝幀:一般膠版紙
- 冊(cè)數(shù):暫無(wú)
- 重量:暫無(wú)
- 所屬分類:>>
白話C++之練功 本書特色
《白話C 》分“練功”和“練武”兩冊(cè)。“練功”主講編程基礎(chǔ)知識(shí)、C 語(yǔ)言語(yǔ)法(含C 11、14等)及多種編程范式。具體包括:大白話講解計(jì)算機(jī)架構(gòu)、進(jìn)程、內(nèi)存、二進(jìn)制等編程概念;手把手教復(fù)雜編程環(huán)境的安裝應(yīng)用;快速感受C 語(yǔ)言概貌及圖形界面、數(shù)據(jù)庫(kù)、網(wǎng)絡(luò)、多線程等功能庫(kù);深入淺出地講解C 語(yǔ)法、標(biāo)準(zhǔn)庫(kù)常用組件及面向過(guò)程、基于對(duì)象、面向?qū)ο、泛型等四種編程范式的演化與對(duì)比。本書借助生活概念幫助用戶理解編程,巧妙安排知識(shí)交叉,讓讀者不受限于常見(jiàn)的控制臺(tái)下編程,快速感受C 編程的樂(lè)趣,提升學(xué)習(xí)動(dòng)力。本書適合作為零基礎(chǔ)C 編程學(xué)習(xí)從入門到深造的課程教材。本書也是《白話C 之練武》的學(xué)習(xí)基礎(chǔ)。“練武”的重點(diǎn)內(nèi)容有:標(biāo)準(zhǔn)庫(kù)(STL)、準(zhǔn)標(biāo)庫(kù)(boost)、圖形界面庫(kù)編程(wxWidgets)、數(shù)據(jù)庫(kù)編程、緩存系統(tǒng)編程、網(wǎng)絡(luò)庫(kù)編程和多媒體游戲編程等。
白話C++之練功 內(nèi)容簡(jiǎn)介
本書從什么叫做計(jì)算機(jī)的“硬件、軟件”、什么叫做“程序”講起, 并在涉及C++具體語(yǔ)法之前, 詳細(xì)講解內(nèi)存與程序的關(guān)系, 內(nèi)容包括: 啟蒙 ; 準(zhǔn)備 ; 感受 ; 基礎(chǔ) ; IDE-Code::Blocks語(yǔ)言 ; 面向?qū)ο?; 泛型。
白話C++之練功 目錄
第1章啟蒙11.1開(kāi)始1
1.2什么是計(jì)算機(jī)4
1.2.1“馮·諾依曼”版4
1.2.2“白話 C ”版5
1.3什么是硬件、軟件6
1.4什么是程序7
1.4.1什么是指令7
1.4.2指令兼容8
1.4.3程序=指令的邏輯組合8
1.4.4程序vs軟件9
1.5什么是編程語(yǔ)言9
1.5.1機(jī)器語(yǔ)言10
1.5.2機(jī)器語(yǔ)言的“字母”10
1.5.3二進(jìn)制(基礎(chǔ))11
1.5.4匯編語(yǔ)言11
1.5.5高級(jí)語(yǔ)言12
1.5.6編程思維13
1.5.7從C到C 14
1.6什么是IDE15
1.7你是程序員17
1.8出發(fā)贈(zèng)言19
第2章準(zhǔn)備20
2.1基礎(chǔ)知識(shí)20
2.1.1開(kāi)源協(xié)議20
2.1.2“庫(kù)”是什么20
2.1.3“庫(kù)”長(zhǎng)什么樣子21
2.1.4學(xué)習(xí)哪些“庫(kù)”22
2.1.5準(zhǔn)備安裝目錄22
2.1.6更多支持22
2.2安裝IDE——Code::Blocks23
2.2.1檢查MinGW環(huán)境23
2.2.2安裝Code::Blocks23
2.2.3升級(jí)Code::Blocks24
2.2.4安裝MinGWw6424
2.2.5試運(yùn)行25
2.2.6配置IDE26
2.3系統(tǒng)編譯環(huán)境變量29
2.4安裝wxWidgets30
2.4.1下載31
2.4.2編譯31
2.4.3檢查32
2.5安裝boost33
2.5.1下載33
2.5.2輔助工具34
2.5.3編譯34
2.5.4檢查35
2.6安裝MySQL35
2.6.1搞清楚“位數(shù)”36
2.6.2安裝MySQL37
2.6.3安裝MySQL管理客戶端38
2.6.4安裝MySQL 32位C語(yǔ)言客戶端庫(kù)39
2.7安裝MySQL 39
2.7.1輔助工具39
2.7.2下載39
2.7.3編譯39
2.7.4安裝40
2.8配置Code::Blocks全局變量41
2.8.1新建全局變量集:d2school42
2.8.2全局路徑變量wx42
2.8.3全局路徑變量boost43
2.8.4全局路徑變量mysql44
2.8.5全局路徑變量mysqlpp44
第3章感受(一)45
3.1Hello
world經(jīng)典版45
3.1.1向?qū)Э刂婆_(tái)項(xiàng)目45
3.1.2初識(shí)代碼47
3.1.3頭文件48
3.1.4標(biāo)準(zhǔn)輸出cout50
3.1.5名字空間51
3.1.6函數(shù)52
3.1.7主函數(shù)54
3.1.8注釋55
3.2Hello
world中文版56
3.2.1“字符集”和“編碼”56
3.2.2問(wèn)題與解決56
3.3Hello
world函數(shù)版58
3.3.1定義函數(shù)58
3.3.2調(diào)用函數(shù)58
3.3.3重復(fù)調(diào)用59
3.3.4帶參函數(shù)59
3.4Hello
world交互版61
3.4.1變量61
3.4.2常量63
3.4.3數(shù)據(jù)類型63
3.4.4定義變量64
3.4.5完成交互64
3.5Hello
world分支版65
3.5.1流程控制ifelse66
3.5.2修改Hello函數(shù)——區(qū)別對(duì)待66
3.5.3多級(jí)ifelse67
3.5.4常見(jiàn)關(guān)系、邏輯操作符67
3.6Hello
world循環(huán)版68
3.6.1流程控制while68
3.6.2修改main函數(shù)——反復(fù)操作69
3.7Hello
Object生死版70
3.7.1定義對(duì)象類型71
3.7.2創(chuàng)建對(duì)象72
3.7.3構(gòu)造函數(shù)73
3.7.4析構(gòu)函數(shù)74
3.7.5對(duì)象生命周期74
3.7.6對(duì)象與內(nèi)存78
3.7.7對(duì)象可見(jiàn)區(qū)域80
3.8Hello
Object成員版81
3.8.1成員數(shù)據(jù)84
3.8.2成員函數(shù)85
3.9Hello
Object派生版86
3.9.1使用分支86
3.9.2為何派生87
3.9.3如何派生88
3.9.4定義“美人類”88
3.9.5使用“美人類”89
3.9.6變和不變89
3.9.7派生類的生死過(guò)程90
3.10Hello
Object多態(tài)版92
3.10.1虛函數(shù)93
3.10.2虛“析構(gòu)函數(shù)”95
3.10.3應(yīng)用虛函數(shù)96
3.10.4多態(tài)vs.非多態(tài)99
3.11Hello
Object封裝版99
3.11.1什么是封裝99
3.11.2類型即封裝101
3.11.3公開(kāi)、保護(hù)、私有102
3.11.4class
vs struct104
3.11.5封裝應(yīng)用示例105
3.11.6常量成員函數(shù)109
3.12Hello
STL向量篇110
3.12.1基礎(chǔ)111
3.12.2常用接口112
3.12.3遍歷113
3.12.4實(shí)例:選美大賽管理系統(tǒng)115
3.13Hello
STL鏈表篇123
3.13.1基礎(chǔ)124
3.13.2迭代器/iterator概念124
3.13.3常用函數(shù)1126
3.13.4常用函數(shù)2128
3.13.5常量迭代器130
3.13.6遍歷list容器131
3.13.7實(shí)例:成績(jī)管理系統(tǒng)1132
3.14Hello
STL算法篇137
3.14.1函數(shù)對(duì)象139
3.14.2自定義查找算法141
3.14.3泛化查找算法143
3.14.4標(biāo)準(zhǔn)庫(kù)查找算法146
3.14.5標(biāo)準(zhǔn)庫(kù)排序算法147
3.14.6實(shí)例:成績(jī)管理系統(tǒng)2148
3.15Hello
STL文件篇160
3.15.1寫文件161
3.15.2讀文件163
3.15.3帶格式讀取164
3.15.4實(shí)例:成績(jī)管理系統(tǒng)3165
第4章感受(二)170
4.1Hello
GUI基礎(chǔ)篇170
4.1.1C::B文件默認(rèn)編碼170
4.1.2wxWidgets項(xiàng)目向?qū)?71
4.1.3界面設(shè)計(jì)172
4.1.4編譯運(yùn)行174
4.1.5發(fā)布程序174
4.2Hello
GUI布局篇175
4.2.1wxSmith基礎(chǔ)175
4.2.2wxBoxSizer基礎(chǔ)179
4.2.3布局修改實(shí)例180
4.2.4掛接事件183
4.3Hello
Internet184
4.3.1創(chuàng)建項(xiàng)目185
4.3.2界面設(shè)計(jì)185
4.3.3編寫代碼186
4.4Hello
Database188
4.4.1基本需求189
4.4.2準(zhǔn)備數(shù)據(jù)189
4.4.3創(chuàng)建工程190
4.4.4編寫代碼192
第5章基礎(chǔ)198
5.1從代碼到程序198
5.1.1編譯機(jī)制198
5.1.2解釋機(jī)制200
5.1.3虛擬機(jī)機(jī)制201
5.2構(gòu)建C 程序202
5.2.1預(yù)編譯202
5.2.2編譯205
5.2.3鏈接206
5.2.4手工構(gòu)建208
5.3項(xiàng)目/Project209
5.3.1項(xiàng)目文件209
5.3.2源文件、頭文件210
5.3.3使用頭文件211
5.3.4庫(kù)文件215
5.4進(jìn)程與內(nèi)存216
5.4.1什么叫進(jìn)程217
5.4.2進(jìn)程的內(nèi)存空間217
5.4.3內(nèi)存分配測(cè)試程序218
5.5內(nèi)存分段220
5.5.1代碼段221
5.5.2數(shù)據(jù)段和“全局?jǐn)?shù)據(jù)”221
5.5.3棧內(nèi)存223
5.5.4堆內(nèi)存224
5.6CPU、寄存器225
5.7線程227
5.8數(shù)據(jù)與內(nèi)存230
5.8.1地址、尺寸、值、類型230
5.8.2取址、取尺寸、取值、取類型233
5.8.3指針——裝著地址的變量235
5.8.4堆數(shù)據(jù)與內(nèi)存237
5.8.5數(shù)組數(shù)據(jù)239
5.8.6堆數(shù)組與內(nèi)存240
5.8.7常量與內(nèi)存245
5.8.8二維數(shù)組與內(nèi)存247
5.8.9數(shù)組綜合練習(xí)248
5.8.10聲明、定義、實(shí)現(xiàn)251
5.9進(jìn)制(一)258
5.9.1初識(shí)二進(jìn)制258
5.9.2正整數(shù)和零259
5.9.3負(fù)整數(shù)(原碼、反碼、補(bǔ)碼)259
5.9.4無(wú)符號(hào)數(shù)vs有符號(hào)數(shù)262
5.10進(jìn)制(二)263
5.10.1十六進(jìn)制263
5.10.2八進(jìn)制265
5.10.3進(jìn)制換算266
5.10.4浮點(diǎn)數(shù)267
第6章IDE——Code::Blocks271
6.1窗口布局271
6.1.1邊欄271
6.1.2工具欄272
6.1.3布局保存273
6.2環(huán)境設(shè)置273
6.2.1常規(guī)設(shè)置/General Settings273
6.2.2視圖/View274
6.2.3多頁(yè)面板/Notebooks appearance274
6.2.4禁用的對(duì)話框/Disabled dialogs275
6.2.5內(nèi)置游戲/C::B Games275
6.2.6自動(dòng)保存/Autosave275
6.2.7環(huán)境變量/Environment variables276
6.2.8頭文件自動(dòng)引入/HeaderFixup configuration276
6.2.9幫助文件/Help files277
6.2.10待辦事件/Todo list278
6.3編輯器設(shè)置279
6.3.1常規(guī)設(shè)置/General Settings279
6.3.2代碼折疊/Folding282
6.3.3邊界和光標(biāo)符/Margins and caret282
6.3.4語(yǔ)法高亮/Syntax highlighting282
6.3.5簡(jiǎn)寫詞/Abbreviations282
6.3.6代碼格式化工具/Source formatter283
6.3.7代碼完成/Code completion284
6.3.8快捷鍵/Keyboard shortcuts284
6.3.9拼寫檢查/Spell Checker287
6.3.10wxSmith配置287
6.4編譯器全局設(shè)置287
6.4.1編譯器選項(xiàng)/Compiler settings288
6.4.2其他設(shè)置/Other settings288
6.4.3構(gòu)建配置/Build options288
6.5調(diào)試器全局設(shè)置288
6.6全局路徑變量289
6.7項(xiàng)目管理290
6.7.1項(xiàng)目組織290
6.7.2項(xiàng)目向?qū)?92
6.7.3項(xiàng)目文件293
6.8項(xiàng)目構(gòu)建選項(xiàng)294
6.8.1公共配置和目標(biāo)配置294
6.8.2項(xiàng)目編譯器設(shè)置/Compiler Settings295
6.8.3項(xiàng)目鏈接器設(shè)置/Linker settings296
6.8.4項(xiàng)目搜索路徑/Search directories298
6.8.5項(xiàng)目構(gòu)建附加步驟/Prepost build steps300
6.8.6項(xiàng)目定制變量/Custom variables300
6.9項(xiàng)目屬性300
6.9.1項(xiàng)目設(shè)置/Project settings300
6.9.2構(gòu)建目標(biāo)/Build targets301
6.10項(xiàng)目實(shí)踐303
6.10.1構(gòu)建動(dòng)態(tài)庫(kù)303
6.10.2構(gòu)建靜態(tài)庫(kù)304
6.10.3主項(xiàng)目可執(zhí)行程序305
6.10.4配置依賴庫(kù)305
6.10.5設(shè)置項(xiàng)目間依賴關(guān)系306
6.11調(diào)試307
6.11.1啟動(dòng)調(diào)試307
6.11.2設(shè)置斷點(diǎn)308
6.11.3單步運(yùn)行309
6.11.4觀察數(shù)據(jù)309
6.11.5單步進(jìn)入310
6.11.6單步跳出311
6.11.7其他步進(jìn)指令311
6.11.8定位錯(cuò)誤311
6.11.9中止調(diào)試312
第7章語(yǔ)言313
7.1字面量313
7.1.1整數(shù)字面量314
7.1.2浮點(diǎn)數(shù)字面量315
7.1.3空指針字面量315
7.1.4布爾值字面量316
7.1.5字符字面量317
7.1.6字符串字面量322
7.1.7枚舉字面量323
7.1.8宏替換325
7.1.9自定義字面量326
7.2類型327
7.2.1基本概念327
7.2.2整型329
7.2.3浮點(diǎn)型330
7.2.4字符類型331
7.2.5布爾類型332
7.2.6空類型333
7.2.7類/結(jié)構(gòu)334
7.2.8枚舉類型338
7.2.9類型別名344
7.3類型基礎(chǔ)行為345
7.3.1定義345
7.3.2初始化行為348
7.3.3初始化類成員356
7.3.4復(fù)制構(gòu)造行為361
7.3.5賦值行為366
7.3.6轉(zhuǎn)換行為371
7.3.7轉(zhuǎn)移行為380
7.3.8析構(gòu)行為384
7.4變量和常量385
7.4.1變或不變385
7.4.2常量成員數(shù)據(jù)386
7.4.3常量成員函數(shù)387
7.5引用388
7.5.1定義引用390
7.5.2常量引用392
7.5.3引用傳遞393
7.5.4右值引用395
7.6指針401
7.6.1定義指針401
7.6.2初始化指針401
7.6.3取值與成員訪問(wèn)403
7.6.4釋放指針404
7.6.5常量指針406
7.6.6指針的指針408
7.7數(shù)組409
7.7.1初始化數(shù)組410
7.7.2常量數(shù)組410
7.7.3數(shù)組間復(fù)制數(shù)據(jù)411
7.7.4數(shù)組退化411
7.7.5字符數(shù)組和字符串413
7.7.6多維數(shù)組415
7.7.7指針和數(shù)組417
7.7.8數(shù)組類型的別名420
7.8STL常用類型420
7.8.1std::string/wstring422
7.8.2std::list424
7.8.3std::vector426
7.8.4std::array430
7.8.5std::map433
7.8.6std::ofstream437
7.8.7std::ifstream439
7.8.8std::stringstream441
7.8.9智能指針442
7.9生存期、作用域、可見(jiàn)性、訪問(wèn)限定451
7.9.1基本概念451
7.9.2聲明453
7.9.3名字空間455
7.9.4類型定義作用域469
7.10函數(shù)477
7.10.1函數(shù)作用域477
7.10.2自由函數(shù)、成員函數(shù)478
7.10.3函數(shù)聲明與定義478
7.10.4函數(shù)入?yún)?79
7.10.5函數(shù)返回值489
7.10.6函數(shù)靜態(tài)數(shù)據(jù)503
7.10.7遞歸調(diào)用504
7.10.8函數(shù)重載505
7.10.9操作符重載509
7.10.10內(nèi)聯(lián)函數(shù)512
7.10.11主函數(shù)514
7.10.12函數(shù)指針515
7.11Lambda函數(shù)519
7.11.1基本概念519
7.11.2入?yún)⑴c返回522
7.11.3捕獲/capture523
7.12操作符與表達(dá)式527
7.12.1算術(shù)操作528
7.12.2基礎(chǔ)操作529
7.12.3關(guān)系操作530
7.12.4邏輯操作531
7.12.5位操作533
7.12.6自運(yùn)算536
7.12.7逗號(hào)操作符538
7.12.8取址、取值539
7.12.9成員訪問(wèn)540
7.12.10指針偏移計(jì)算540
7.12.11數(shù)組運(yùn)算543
7.13語(yǔ)句與流程544
7.13.1簡(jiǎn)單語(yǔ)句544
7.13.2復(fù)合語(yǔ)句544
7.13.3if545
7.13.4switch549
7.13.5while553
7.13.6dowhile556
7.13.7for562
7.13.8break/continue567
7.13.9goto569
7.13.10綜合練習(xí)570
7.14模板580
7.14.1基本概念580
7.14.2函數(shù)模板581
7.14.3顯式指定模板參數(shù)582
7.14.4函數(shù)模板示例583
7.14.5類模板585
7.14.6成員函數(shù)模板587
7.14.7標(biāo)準(zhǔn)庫(kù)函數(shù)模板示例588
7.14.8模板代碼編譯591
7.15異常593
7.15.1斧頭幫的異常594
7.15.2錯(cuò)誤VS異常594
7.15.3基本語(yǔ)法599
7.15.4示例:斧頭幫行動(dòng)異常版601
7.15.5異常再拋出603
7.15.6捕獲任意類型異常606
7.15.7函數(shù)異常規(guī)格607
7.15.8函數(shù)自我捕獲異常608
7.15.9構(gòu)建異常“家族”610
7.15.10標(biāo)準(zhǔn)庫(kù)異常類613
7.16并行流程615
7.16.1多線程615
7.16.2線程同步互斥體619
7.16.3規(guī)避死鎖622
7.16.4使用守護(hù)鎖623
7.16.5實(shí)例:并行累加5千萬(wàn)個(gè)數(shù)624
第8章面向?qū)ο?34
8.1抽象634
8.1.1概念635
8.1.2難點(diǎn)637
8.1.3要素639
8.2封裝643
8.2.1不變式645
8.2.2原則647
8.2.3“不變式”實(shí)例649
8.2.4從關(guān)系到狀態(tài)655
8.2.5類型即封裝656
8.2.6類型默認(rèn)行為658
8.2.7this指針660
8.2.8訪問(wèn)控制664
8.2.9冗余保護(hù)664
8.2.10構(gòu)造與資源初始化666
8.2.11析構(gòu)與資源釋放673
8.2.12復(fù)制行為定制675
8.2.13特定行為定制680
8.2.14定制類型轉(zhuǎn)換686
8.2.15轉(zhuǎn)移操作689
8.2.16靜態(tài)成員689
8.2.17常量成員693
8.2.18嵌套類694
8.2.19友元696
8.2.20回歸C的封裝702
8.2.21進(jìn)階思考709
8.3派生735
8.3.1語(yǔ)法基礎(chǔ)738
8.3.2受保護(hù)的741
8.3.3派生方式744
8.3.4派生類的構(gòu)造746
8.3.5派生類的析構(gòu)750
8.3.6多重派生751
8.3.7派生類與作用域755
8.4基于對(duì)象例程759
8.4.1INI文件簡(jiǎn)介760
8.4.2面向過(guò)程的設(shè)計(jì)761
8.4.3基于對(duì)象的設(shè)計(jì)767
8.4.4復(fù)用實(shí)現(xiàn)的派生775
8.5多態(tài)779
8.5.1“什么”和“為什么”779
8.5.2接口約定782
8.5.3虛函數(shù)785
8.5.4“多態(tài)”實(shí)例786
8.6OO設(shè)計(jì)原則792
8.6.1isa關(guān)系792
8.6.2抽象、抽象、再抽象795
8.6.3高內(nèi)聚低耦合797
8.6.4明確數(shù)據(jù)邊界800
8.6.5強(qiáng)化數(shù)據(jù)不變性803
8.6.6層次與模塊808
8.6.7框架型基類809
8.7綜合練習(xí)815
8.7.1工資發(fā)放練習(xí)815
8.7.2射擊游戲的需求815
8.7.3小小進(jìn)銷存的需求817
第9章泛型820
9.1泛型概念820
9.2基礎(chǔ)回顧820
9.2.1函數(shù)模板820
9.2.2類模板822
9.2.3成員函數(shù)模板823
9.3模板實(shí)例化825
9.3.1只幫一次忙825
9.3.2潛在匹配條件828
9.3.3顯式指定類型829
9.3.4類模板實(shí)例化831
9.3.5模板內(nèi)符號(hào)身份確定832
9.3.6非類型模板參數(shù)835
9.3.7模板參數(shù)默認(rèn)值838
9.4泛型應(yīng)用實(shí)例838
9.4.1CStyle類型轉(zhuǎn)換模板838
9.4.2Pair839
9.4.3AutoPtr842
9.4.4RangeArray849
9.4.5鏈表結(jié)構(gòu)856
9.5泛型特化872
9.5.1函數(shù)模板特化872
9.5.2類模板特化基礎(chǔ)876
9.5.3局部特化的花樣878
9.5.4全特化880
參考文獻(xiàn)881
展開(kāi)全部
白話C++之練功 作者簡(jiǎn)介
莊嚴(yán),筆名南郁;20年IT從業(yè)經(jīng)歷,從一線研發(fā)人員到企業(yè)副總工、技術(shù)總監(jiān)。雖然不同崗位有不同職責(zé),但從未放棄過(guò)編程。編寫過(guò)嵌入式、字處理軟件、語(yǔ)言解釋器、手機(jī)應(yīng)用、大型分布式網(wǎng)絡(luò)服務(wù)和互聯(lián)網(wǎng)商城等軟件系統(tǒng),F(xiàn)為程知信息公司創(chuàng)始人,致力于將自身的技術(shù)、學(xué)習(xí)過(guò)程、成長(zhǎng)歷程、對(duì)內(nèi)對(duì)外的技術(shù)培訓(xùn)、大學(xué)院校培訓(xùn)課程以及常年參與技術(shù)員面試的心得體會(huì)、經(jīng)驗(yàn)教訓(xùn)形成相關(guān)課程。