定 價:¥59.00
作 者: | 馬光志 |
出版社: | 華中科技大學出版社 |
叢編項: | |
標 簽: | 暫缺 |
ISBN: | 9787568094825 | 出版時間: | 2023-07-01 | 包裝: | 平裝 |
開本: | 16開 | 頁數(shù): | 字數(shù): |
第1章 C 引論 1
1.1 計算機的體系結構 1
1.1.1 計算機系統(tǒng)的體系結構 1
1.1.2 數(shù)據(jù)與機器指令的解析 3
1.2 進制及其轉換和運算 5
1.2.1 計算機采用二進制的原因 5
1.2.2 C 的常用進制及其運算 6
1.3 80x86系列匯編語言 8
1.3.1 匯編語言及C 編譯簡介 8
1.3.2 匯編指令及C 程序編譯 9
1.4 C 的發(fā)展歷史及特點 13
1.4.1 C 的發(fā)展歷史 14
1.4.2 C 的特點 14
1.5 語法圖與程序流程圖 15
1.5.1 C 的語法圖 15
1.5.2 程序流程圖 17
1.6 編譯環(huán)境的安裝與使用 18
1.6.1 編譯過程及編譯環(huán)境 19
1.6.2 Microsoft Visual Studio 2019的安裝 19
練習題 26
第2章 類型、常量及變量 27
2.1 C 的單詞 27
2.1.1 C 的字符集 27
2.1.2 C 的關鍵字 28
2.2 預定義類型及值域和常量 29
2.2.1 預定義類型及其數(shù)值轉換 29
2.2.2 強制類型轉換及類型值域 31
2.2.3 預定義類型及相關常量 33
2.3 變量及其類型解析 37
2.3.1 變量的聲明和定義 38
2.3.2 指針及其類型理解 41
2.3.3 有址引用變量 49
2.3.4 無址引用變量 55
2.3.5 元素、下標及數(shù)組 57
2.4 運算符及表達式 60
2.4.1 位運算與等號運算 60
2.4.2 指針運算及其結合方向 61
2.4.3 關系運算及結果轉換 62
2.5 結構與聯(lián)合 64
2.5.1 結構體 64
2.5.2 聯(lián)合體 66
練習題 68
第3章 語句、函數(shù)及程序設計 70
3.1 C 的語句 70
3.1.1 簡單語句 70
3.1.2 轉移語句 71
3.1.3 分支語句及分支預選 73
3.1.4 循環(huán)語句 76
3.1.5 break和continue語句 80
3.1.6 asm和static_assert語句 81
3.2 C 的函數(shù) 82
3.2.1 函數(shù)聲明與定義 82
3.2.2 頭文件與聲明 84
3.2.3 函數(shù)的參數(shù)聲明 86
3.2.4 函數(shù)重載 88
3.2.5 inline、constexpr及consteval函數(shù) 90
3.2.6 線程互斥及線程本地變量 94
3.3 作用域 95
3.3.1 全局作用域與文件作用域 95
3.3.2 局部作用域與塊作用域 97
3.4 生命期 99
3.5 程序設計實例 101
3.5.1 棧編程實例 101
3.5.2 隊列編程實例 103
3.5.3 有限自動機編程實例 105
練習題 108
第4章 C 的類 110
4.1 類的聲明及定義 110
4.1.1 面向對象的基本概念 110
4.1.2 類及對象定義的實例 111
4.2 成員訪問權限及突破方法 115
4.2.1 成員的訪問權限 116
4.2.2 突破成員的訪問權限 117
4.3 內聯(lián)、匿名類及位域 118
4.3.1 函數(shù)成員的內聯(lián) 118
4.3.2 無對象的靜態(tài)匿名聯(lián)合 119
4.3.3 局部類及位域成員 121
4.4 new和delete運算符 122
4.4.1 簡單類型及單個對象內存管理 122
4.4.2 復雜類型及對象數(shù)組內存管理 124
4.5 隱含參數(shù)this 126
4.6 對象的構造與析構 128
4.6.1 構造函數(shù)及對象初始化 128
4.6.2 成員默認值及構造與析構 130
4.7 類及對象的內存布局 132
練習題 135
第5章 成員及成員指針 137
5.1 實例成員指針 137
5.1.1 實例成員指針的用法 137
5.1.2 實例成員指針的限制 139
5.2 const、volatile和mutable 140
5.2.1 const和volatile的用法 140
5.2.2 mutable實例數(shù)據(jù)成員 144
5.3 靜態(tài)數(shù)據(jù)成員 146
5.3.1 靜態(tài)數(shù)據(jù)成員的用法 146
5.3.2 靜態(tài)數(shù)據(jù)成員的限制 149
5.4 靜態(tài)函數(shù)成員 151
5.4.1 靜態(tài)函數(shù)成員的訪問 151
5.4.2 靜態(tài)函數(shù)成員的限制 152
5.5 靜態(tài)成員指針 153
5.5.1 靜態(tài)成員指針的用法 153
5.5.2 多種指針的混合用法 154
5.6 聯(lián)合的成員指針 155
練習題 157
第6章 繼承與構造 160
6.1 單繼承類 160
6.2 繼承方式 162
6.2.1 繼承后成員的訪問權限 162
6.2.2 訪問權限的修改 165
6.3 成員訪問及其指針 166
6.4 構造與析構 168
6.4.1 對象構造的執(zhí)行順序 168
6.4.2 new、delete引起的構造與析構 169
6.5 父類與子類 170
6.5.1 父類及其函數(shù)調用 170
6.5.2 友元和派生類函數(shù)中的父子類關系 172
6.6 派生類的內存布局 174
練習題 175
第7章 可訪問性 178
7.1 作用域運算符 178
7.1.1 面向對象的作用域 178
7.1.2 面向過程的作用域 181
7.2 名字空間 182
7.2.1 名字空間的基本用法 182
7.2.2 使用名字空間的注意事項 185
7.3 成員友元 187
7.3.1 成員友元的一般用法 188
7.3.2 互為依賴的類的友元 189
7.4 普通友元及其注意事項 190
7.4.1 普通友元的一般用法 191
7.4.2 友元使用的注意事項 193
7.5 覆蓋與隱藏 195
7.5.1 覆蓋與隱藏的用法 195
7.5.2 使用using避免數(shù)據(jù)成員覆蓋 196
7.6 同體與異體 198
練習題 199
第8章 多態(tài)與虛函數(shù) 203
8.1 虛函數(shù) 203
8.1.1 虛函數(shù)的聲明及定義 203
8.1.2 虛函數(shù)的重載及內聯(lián) 205
8.2 虛析構函數(shù) 209
8.3 類的引用 210
8.3.1 類的引用變量及其析構 211
8.3.2 類的引用參數(shù)及其析構 213
8.4 抽象類 217
8.4.1 抽象類的定義及用法 217
8.4.2 抽象類的應用實例 218
8.5 虛函數(shù)友元與晚期綁定 221
8.5.1 虛函數(shù)作為友元 221
8.5.2 虛函數(shù)的晚期綁定 222
8.6 有虛函數(shù)時的內存布局 223
練習題 225
第9章 多繼承與虛基類 227
9.1 多繼承類 227
9.1.1 無多繼承的替代方案 227
9.1.2 多繼承存在的問題 228
9.2 虛基類 230
9.3 派生類成員 232
9.3.1 無虛基類時的成員同名 232
9.3.2 有虛基類時的成員同名 233
9.4 單重及多重繼承的構造與析構 234
9.4.1 單繼承的構造與析構 234
9.4.2 多繼承的構造與析構 236
9.5 多繼承類的內存布局 237
9.5.1 無虛基類時的內存布局 237
9.5.2 有虛基類時的內存布局 239
練習題 242
第10章 異常與斷言 245
10.1 異常處理 245
10.1.1 拋出與捕獲 245
10.1.2 異常的傳播 247
10.2 捕獲順序 248
10.3 函數(shù)的異常接口 249
10.3.1 異常接口聲明 250
10.3.2 noexcept接口 251
10.4 異常類型 253
10.5 異常對象的析構 254
10.5.1 通過對象指針析構 254
10.5.2 未完成對象的析構 256
10.6 斷言 257
練習題 259
第11章 運算符重載 260
11.1 運算符概述 260
11.1.1 結果為左值的運算符 260
11.1.2 運算符重載的分類 261
11.1.3 成員重載與非成員重載 262
11.2 運算符參數(shù) 263
11.2.1 自增與自減的重載 264
11.2.2 重載運算符-> 265
11.2.3 單雙目運算符的重載 266
11.3 賦值與調用 268
11.3.1 賦值運算符的重載 268
11.3.2 構造函數(shù)的重載 271
11.3.3 安全的編程方法 272
11.4 類型轉換與內存管理 273
11.4.1 單個顯式參數(shù)構造函數(shù) 274
11.4.2 強制類型轉換重載函數(shù) 275
11.4.3 重載new和delete 276
11.5 重載<=>、[]及文本運算符 278
11.5.1 重載<=>運算符 278
11.5.2 重載[]運算符 280
11.5.3 重載文本運算符 281
11.6 運算符重載實例 282
11.6.1 符號表運算的重載實例 282
11.6.2 棧及隊列運算重載實例 284
練習題 289
第12章 類型解析、轉換與推導 295
12.1 隱式與顯式類型轉換 295
12.1.1 簡單類型的隱式轉換 295
12.1.2 簡單類型的顯式轉換 297
12.1.3 簡單類型的轉換結果 298
12.2 cast系列類型轉換 302
12.2.1 static_cast——靜態(tài)轉換 302
12.2.2 const_cast——只讀轉換 303
12.2.3 dynamic_cast——動態(tài)轉換 306
12.2.4 reinterpret_cast——重釋轉換 310
12.3 類型轉換實例 312
12.3.1 typeid獲取類型標識 313
12.3.2 explicit要求顯式調用 314
12.3.3 棧的類型轉換實例 316
12.4 自動類型推導 318
12.4.1 auto的一般用法 319
12.4.2 auto用于函數(shù)、數(shù)組、列表和結構 320
12.4.3 表達式類型的提取decltype 322
12.5 Lambda表達式 324
12.5.1 Lambda表達式的聲明 324
12.5.2 Lambda表達式的參數(shù) 327
12.5.3 準函數(shù)Lambda表達式 331
練習題 334
第13章 模板、模塊、概念、協(xié)程 335
13.1 變量模板及其實例 335
13.1.1 變量模板的定義 335
13.1.2 變量模板的實例化 336
13.2 函數(shù)模板 337
13.2.1 函數(shù)模板的定義 337
13.2.2 成員函數(shù)模板的定義 339
13.2.3 可變類型參數(shù)及折疊表達式 340
13.3 函數(shù)模板實例化 343
13.3.1 函數(shù)模板強制實例化 343
13.3.2 函數(shù)模板實例特化 344
13.3.3 涉及指針的模板實例化 345
13.4 類模板及模板別名 346
13.4.1 類模板及模板別名定義 346
13.4.2 派生類類模板的定義 347
13.4.3 多類型參數(shù)的類模板 348
13.4.4 省略參數(shù)的類模板 349
13.4.5 類模板的友元及Lambda表達式 351
13.5 類模板的實例化及特化 354
13.5.1 類模板的實例化 354
13.5.2 類模板實例特化 354
13.5.3 類模板的部分特化 357
13.5.4 實例化與類型推導 359
13.5.5 類模板及實例成員指針 360
13.5.6 模板分隔符的二義性 361
13.5.7 類模板與泛型 362
13.6 模塊、概念、協(xié)程 366
13.6.1 模塊及分區(qū) 366
13.6.2 概念及約束 368
13.6.3 協(xié)程及編譯配置 371
13.6.4 智能指針及內存回收 376
練習題 379
第14章 流及標準類庫 381
14.1 流類概述 381
14.2 輸出流 382
14.3 輸入流 385
14.4 文件流 386
14.5 串流處理 388
14.6 函數(shù)模板format 389
14.7 標準類庫的容器 390
14.8 類型特征type_traits 393
練習題 396
第15章 面向對象開發(fā)實例 397
15.1 面向對象設計概述 397
15.2 對象的靜態(tài)模型 398
15.3 面向對象的分析 400
15.4 對象的設計與實現(xiàn) 401
15.5 骰子游戲模型設計實例 403
15.5.1 問題描述 403
15.5.2 對象模型 404
15.5.3 對象設計 405
15.6 游戲模型程序設計 408
練習題 414
參考文獻 422
=>=>