《C++遊戲編程》是由鄒吉濤、姚雷、易巧玲編寫的一本書籍。
基本介紹
- 書名:C++遊戲編程
- 作者:鄒吉濤、姚雷、易巧玲
- ISBN:9787302245919
- 定價:50元
基本信息,內容簡介,目錄,
基本信息
C++遊戲編程
印次:1-1
裝幀:平裝
印刷日期:2011-1-7
內容簡介
本書介紹如何用C++語言進行遊戲程式開發。全書可分為C++語言的基礎語法、面向對象編程技術、標準模板庫的套用三個部分,共18章,主要內容包括:概觀程式設計,開發環境簡介,基本數據類型,運算符與表達式,程式的結構,宏和編譯預處理,數組,函式與程式結構,指針和引用,結構、聯合、枚舉,類與對象,靜態成員與友元,繼承與多態,運算符重載,模板,標準模板庫,I/O流,異常處理等。
本書適合遊戲開發人員及遊戲相關專業師生學習使用,也可供C++編程愛好者參考。
目錄
第1章 概觀程式設計 1
1.1 程式設計發展歷程 1
1.1.1 什麼是電腦程式 1
1.1.2 電腦程式語言的發展歷史 2
1.2 程式設計思想 4
1.2.1 結構化程式設計思想 4
1.2.2 面向對象程式設計思想 5
本章小結 8
第2章 開發環境簡介 9
2.1 Visual Studio .NET集成開發環境 9
2.1.1 創建項目 10
2.1.2 創建檔案 12
2.1.3 項目屬性設定 12
2.1.4 編譯和運行 13
2.1.5 調試 14
2.1.6 輔助工具 14
2.1.7 解決方案資源管理器 18
2.1.8 類視圖 19
2.1.9 檔案視圖 20
2.1.10 資源視圖 20
2.1.11 幫助文檔的使用 28
2.2 Linux下的開發環境 28
2.2.1 Vi編輯器的基本使用 29
2.2.2 Vi編輯器的命令 29
2.2.3 Vi編輯器環境設定 32
2.2.4 g++編譯程式的方法 33
2.2.5 g++編譯程式的選項 33
2.2.6 運行應用程式 38
2.2.7 幫助文檔的使用 38
2.3 CodeBlocks集成開發工具介紹 38
2.3.1 創建工程 39
2.3.2 創建檔案 39
2.3.3 項目屬性設定 39
2.3.4 編譯及運行 40
2.4 繪圖函式館的使用 41
本章小結 41
第3章 基本數據類型 42
3.1 基本程式組成結構 42
3.1.1 一個基本的C++程式 42
3.1.2 基本輸入輸出 43
3.2 字元集和關鍵字 47
3.3 C++的數據類型概述 49
3.4 基本數據類型 51
3.4.1 整型數據 51
3.4.2 浮點型數據 52
3.4.3 字元型數據 53
3.4.4 bool類型 56
3.4.5 void類型 58
3.4.6 常量與變數 58
3.5 類型轉換 61
3.5.1 隱式類型轉換 62
3.5.2 強制類型轉換 64
本章小結 64
第4章 運算符與表達式 66
4.1 概述 66
4.2 運算符和表達式 66
4.2.1 運算符和表達式的種類 66
4.2.2 左值和右值 67
4.3 算術運算符和算術表達式 68
4.4 自增和自減運算符 69
4.5 賦值運算符和賦值表達式 71
4.5.1 賦值運算符與賦值運算 71
4.5.2 複合賦值運算符 72
4.5.3 賦值表達式 72
4.6 關係運算符和關係表達式 73
4.7 邏輯運算符和邏輯表達式 75
4.7.1 邏輯運算符 75
4.7.2 邏輯表達式 76
4.8 sizeof運算符 76
4.9 條件運算符和條件表達式 77
4.10 逗號運算符和逗號表達式 78
4.11 優先性和結合性 79
本章小結 80
習題 80
第5章 程式的結構 81
5.1 順序結構 81
5.2 分支結構程式設計 82
5.2.1 if…else…結構 82
5.2.2 switch語句 86
5.2.3 goto語句 89
5.3 循環結構程式設計 90
5.3.1 for語句 90
5.3.2 while語句 94
5.3.3 do-while語句 96
5.3.4 循環的嵌套 97
5.4 break、continue語句 98
5.4.1 break語句 98
5.4.2 continue語句 100
本章小結 101
習題 101
第6章 宏和編譯預處理 102
6.1 宏定義 103
6.2 頭檔案包含 108
6.3 條件編譯 110
6.4 其他預處理指令 115
本章小結 119
習題 119
第7章 數組 120
7.1 為何需要數組 120
7.2 聲明數組 121
7.3 訪問數組元素 122
7.4 數組的初始化 124
7.5 數組套用舉例 125
7.5.1 選擇排序 125
7.5.2 冒泡排序 127
7.5.3 更多排序算法 129
7.6 字元串與字元數組 131
7.7 數組作為函式參數 133
7.8 二維數組 134
7.8.1 二維數組的定義 134
7.8.2 二維數組中元素的引用 135
7.8.3 二維數組的初始化 135
7.8.4 二維數組程式舉例 136
7.9 多維數組 138
7.9.1 多維數組的定義 139
7.9.2 多維數組的引用 139
本章小結 141
習題 141
第8章 函式與程式結構 142
8.1 函式的概念 142
8.2 函式定義 143
8.3 函式聲明 145
8.4 函式調用 147
8.5 變數的作用域類型 149
8.5.1 局部變數 149
8.5.2 全局變數 151
8.6 變數的存儲類型 152
8.6.1 動態存儲變數 152
8.6.2 靜態存儲變數 153
8.7 函式返回值 153
8.8 默認函式參數 155
8.9 內聯函式 158
8.10 函式重載 160
8.11 作用域 163
8.11.1 局部作用域 163
8.11.2 函式作用域 164
8.11.3 函式原型作用域 165
8.12 可見性與生命期 165
8.12.1 可見性 165
8.12.2 生命期 167
8.12.3 補充說明 168
8.13 綜合套用舉例 168
8.14 遞歸函式 170
8.14.1 遞歸函式舉例 170
8.14.2 遞歸調用過程分析 171
8.14.3 遞歸程式設計方法 172
8.15 程式檔案結構 174
8.15.1 頭檔案 174
8.15.2 檔案作用域 176
8.15.3 多檔案結構 176
8.15.4 外部存儲類型 177
本章小結 179
習題 179
第9章 指針和引用 180
9.1 指針的概念 180
9.2 指針聲明和賦值 182
9.3 通過指針訪問數據 185
9.4 指針運算 187
9.5 動態記憶體分配 190
9.5.1 malloc()和free()函式 191
9.5.2 new和delete運算符 193
9.5.3 指針與數組 194
9.6 動態記憶體分配的套用 198
9.6.1 套用舉例1 198
9.6.2 套用舉例2 199
9.7 const指針 204
9.8 指針作為函式參數 208
9.9 指針函式 213
9.10 函式指針 215
9.11 指針數組 219
9.12 指向指針的指針 223
9.13 常見的記憶體錯誤及其對策 226
9.14 引用的定義 227
9.15 使用引用訪問數據 232
9.16 引用與指針對比 235
9.17 引用做函式的參數 236
9.18 套用舉例3 239
9.19 返回引用 240
9.20 函式調用作為左值 244
9.21 const限定的引用 246
9.22 返回堆中變數的引用 248
本章小結 250
習題 250
第10章 結構、聯合、枚舉 252
10.1 自定義數據類型概述 252
10.2 結構的定義 253
10.3 結構初始化 255
10.4 訪問結構成員 257
10.5 結構與數組 258
10.6 結構與指針 264
10.7 結構與引用 266
10.8 在函式中使用結構 267
10.9 結構的複雜形式 273
10.10 鍊表 275
10.11 聯合 279
10.12 枚舉 285
本章小結 294
習題 294
第11章 類與對象 296
11.1 抽象概述 296
11.2 類的概念 297
11.3 類的定義 298
11.3.1 類與結構 298
11.3.2 類的聲明 299
11.3.3 類成員的訪問控制 300
11.3.4 數據成員 303
11.3.5 成員函式 304
11.3.6 重載成員函式 306
11.3.7 類定義的注意事項 307
11.3.8 類聲明和類定義 308
11.4 對象 309
11.4.1 類與對象的區別和聯繫 309
11.4.2 對象的聲明 309
11.4.3 訪問數據成員 310
11.4.4 調用成員函式 310
11.5 綜合套用 313
11.6 構造函式 314
11.6.1 為何需要構造函式 314
11.6.2 構造函式的定義 316
11.6.3 帶參數構造函式 317
11.6.4 默認構造函式 318
11.6.5 重載構造函式 319
11.7 類對象成員的初始化 320
11.8 析構函式 323
11.8.1 為何需要析構函式 323
11.8.2 析構函式的定義 324
11.8.3 何時需要使用析構函式 325
11.9 堆疊和記憶體分配 325
11.9.1 記憶體管理概述 325
11.9.2 變數與對象的空間分配時機與初始化327
11.9.3 為什麼使用new/delete操作符 328
11.10 拷貝構造函式 329
11.10.1 程式出錯的原因分析 329
11.10.2 拷貝構造函式 332
11.10.3 默認拷貝構造函式 334
11.10.4 淺拷貝與深拷貝 334
11.11 臨時對象和無名對象 337
11.11.1 臨時對象 337
11.11.2 無名對象 338
11.12 const成員 339
本章小結 340
習題 341
第12章 靜態成員與友元 342
12.1 靜態成員 342
12.1.1 為何需要靜態成員 342
12.1.2 靜態成員變數 343
12.1.3 靜態成員函式 345
12.2 友元 346
12.2.1 為何需要友元 346
12.2.2 友元函式 347
12.2.3 友元類 348
第13章 繼承與多態 351
13.1 繼承與派生的概念 352
13.2 繼承的實現方式 354
13.3 繼承類的構造與析構 355
13.3.1 繼承類的構造 355
13.3.2 構造函式的參數傳遞 357
13.4 基類訪問控制 360
13.5 多態與虛函式 362
13.5.1 為什麼使用虛函式 363
13.5.2 虛函式 364
13.5.3 重載、隱藏與覆蓋 365
13.5.4 虛函式的限制 368
13.6 多繼承 370
13.6.1 多繼承的實現 371
13.6.2 多繼承的二義性 371
13.6.3 多繼承的構造順序 373
13.7 虛基類 374
13.7.1 虛基類的定義 375
13.7.2 虛基類的構造函式和初始化376
本章小結 376
習題 377
第14章 運算符重載 378
14.1 為何要重載運算符 378
14.2 運算符重載的實現 379
14.2.1 成員函式運算符重載 380
14.2.2 友元函式運算符重載 382
14.3 單目運算符和雙目運算符 383
14.4 引用返回和值返回 386
14.5 常見的運算符重載 391
14.5.1 賦值與比較運算符 391
14.5.2 遞增與遞減運算符 392
14.5.3 數組存取標識符 393
本章小結 395
習題 395
第15章 模板 396
15.1 為何需要模板 396
15.2 函式模板 397
15.2.1 函式模板的概念 397
15.2.2 函式模板的定義 398
15.2.3 函式模板的實例化 399
15.2.4 重載模板函式 399
15.3 類模板 401
15.3.1 類模板的定義 401
15.3.2 使用類模板 403
15.4 綜合套用 404
本章小結 406
第16章 標準模板庫 407
16.1 標準模板庫的基本組成 407
16.2 標準命名空間 408
16.3 容器 409
16.3.1 順序容器 409
16.3.2 關係式容器 411
16.4 疊代器 413
16.5 算法 415
本章小結 418
第17章 I/O流 419
17.1 流的概念 419
17.2 I/O標準流類 421
17.2.1 標準流的設備名 421
17.2.2 原理 421
17.3 輸入輸出的格式控制 423
17.3.1 用ios類的成員函式進行格式控制 423
17.3.2 使用格式控制符進行格式控制 427
17.4 輸入輸出運算符的重載 429
17.4.1 重載輸出運算符 429
17.4.2 重載輸入運算符 430
17.5 檔案流 431
17.5.1 打開檔案 432
17.5.2 關閉檔案 434
17.5.3 寫入檔案 435
17.5.4 讀取檔案 435
17.5.5 常用操作和狀態檢測 436
17.5.6 讀寫隨機檔案 438
17.5.7 二進制檔案的處理 440
本章小結 442
習題 442
第18章 異常處理 443
18.1 傳統的錯誤處理方式 443
18.2 異常處理的思想 445
18.3 異常處理的實現方式 447
18.4 構造和析構中的異常拋出 448
18.5 異常規格說明 449
18.6 標準異常 451
本章小結 452
附錄A 程式的寫作風格 453