天天看點

C++遊戲程式設計

C++遊戲程式設計

1 概觀程式設計

1.1 程式設計發展曆程

1.1.1 什麼是計算機程式
1.1.2 計算機程式語言的發展曆史

1.2 程式設計思想

1.2.1 結構化程式設計思想
1.2.2 面向對象程式設計思想

本章小結

2 開發環境簡介

2.1 Visual Studio .NET內建開發環境

2.1.1 建立項目
2.1.2 建立檔案
2.1.3 項目屬性設定
2.1.4 編譯和運作
2.1.5 調試
2.1.6 輔助工具
2.1.7 解決方案資料總管
2.1.8 類視圖
2.1.9 檔案視圖
2.1.10 資源視圖
2.1.11 幫助文檔的使用

2.2 Linux下的開發環境

2.2.1 Vi編輯器的基本使用
2.2.2 Vi編輯器的指令
2.2.3 Vi編輯器環境設定
2.2.4 g++編譯程式的方法
2.2.5 g++編譯程式的選項
2.2.6 運作應用程式
2.2.7 幫助文檔的使用

2.3 CodeBlocks內建開發工具介紹

2.3.1 建立工程
2.3.2 建立檔案
2.3.3 項目屬性設定
2.3.4 編譯及運作

2.4 繪圖函數庫的使用

本章小結

3 基本資料類型

3.1 基本程式組成結構

3.1.1 一個基本的C++程式
3.1.2 基本輸入輸出

3.2 字元集和關鍵字

3.3 C++的資料類型概述

3.4 基本資料類型

3.4.1 整型資料
3.4.2 浮點型資料
3.4.3 字元型資料
3.4.4 bool類型
3.4.5 void類型
3.4.6 常量與變量

3.5 類型轉換

3.5.1 隐式類型轉換
3.5.2 強制類型轉換

本章小結

4 運算符與表達式

4.1 概述

4.2 運算符和表達式

4.2.1 運算符和表達式的種類
4.2.2 左值和右值

4.3 算術運算符和算術表達式

4.4 自增和自減運算符

4.5 指派運算符和指派表達式

4.5.1 指派運算符與指派運算
4.5.2 複合指派運算符
4.5.3 指派表達式

4.6 關系運算符和關系表達式

4.7 邏輯運算符和邏輯表達式

4.7.1 邏輯運算符
4.7.2 邏輯表達式

4.8 sizeof運算符

4.9 條件運算符和條件表達式

4.10 逗号運算符和逗号表達式

4.11 優先性和結合性

本章小結

習題

5 程式的結構

5.1 順序結構

5.2 分支結構程式設計

5.2.1 if…else…結構
5.2.2 switch語句
5.2.3 goto語句

5.3 循環結構程式設計

5.3.1 for語句
5.3.2 while語句
5.3.3 do-while語句
5.3.4 循環的嵌套

5.4 break、continue語句

5.4.1 break語句
5.4.2 continue語句

本章小結

習題

6 宏和編譯預處理

6.1 宏定義

6.2 頭檔案包含

6.3 條件編譯

6.4 其他預處理指令

本章小結

習題

7 數組

7.1 為何需要數組

7.2 聲明數組

7.3 通路數組元素

7.4 數組的初始化

7.5 數組應用舉例

7.5.1 選擇排序
7.5.2 冒泡排序
7.5.3 更多排序算法

7.6 字元串與字元數組

7.7 數組作為函數參數

7.8 二維數組

7.8.1 二維數組的定義
7.8.2 二維數組中元素的引用
7.8.3 二維數組的初始化
7.8.4 二維數組程式舉例

7.9 多元數組

7.9.1 多元數組的定義
7.9.2 多元數組的引用

本章小結

習題

8 函數與程式結構

8.1 函數的概念

8.2 函數定義

8.3 函數聲明

8.4 函數調用

8.5 變量的作用域類型

8.5.1 局部變量
8.5.2 全局變量

8.6 變量的存儲類型

8.6.1 動态存儲變量
8.6.2 靜态存儲變量

8.7 函數傳回值

8.8 預設函數參數

8.9 内聯函數

8.10 函數重載

8.11 作用域

8.11.1 局部作用域
8.11.2 函數作用域
8.11.3 函數原型作用域

8.12 可見性與生命期

8.12.1 可見性
8.12.2 生命期
8.12.3 補充說明

8.13 綜合應用舉例

8.14 遞歸函數

8.14.1 遞歸函數舉例
8.14.2 遞歸調用過程分析
8.14.3 遞歸程式設計方法

8.15 程式檔案結構

8.15.1 頭檔案
8.15.2 檔案作用域
8.15.3 多檔案結構
8.15.4 外部存儲類型

本章小結

習題

9 指針和引用

9.1 指針的概念

9.2 指針聲明和指派

9.3 通過指針通路資料

9.4 指針運算

9.5 動态記憶體配置設定

9.5.1 malloc()和free()函數
9.5.2 new和delete運算符
9.5.3 指針與數組

9.6 動态記憶體配置設定的應用

9.6.1 應用舉例1
9.6.2 應用舉例2

9.7 const指針

9.8 指針作為函數參數

9.9 指針函數

9.10 函數指針

9.11 指針數組

9.12 指向指針的指針

9.13 常見的記憶體錯誤及其對策

9.14 引用的定義

9.15 使用引用通路資料

9.16 引用與指針對比

9.17 引用做函數的參數

9.18 應用舉例3

9.19 傳回引用

9.20 函數調用作為左值

9.21 const限定的引用

9.22 傳回堆中變量的引用

本章小結

習題

10 結構、聯合、枚舉

10.1 自定義資料類型概述

10.2 結構的定義

10.3 結構初始化

10.4 通路結構成員

10.5 結構與數組

10.6 結構與指針

10.7 結構與引用

10.8 在函數中使用結構

10.9 結構的複雜形式

10.10 連結清單

10.11 聯合

10.12 枚舉

本章小結

習題

11 類與對象

11.1 抽象概述

11.2 類的概念

11.3 類的定義

11.3.1 類與結構
11.3.2 類的聲明
11.3.3 類成員的通路控制
11.3.4 資料成員
11.3.5 成員函數
11.3.6 重載成員函數
11.3.7 類定義的注意事項
11.3.8 類聲明和類定義

11.4 對象

11.4.1 類與對象的差別和聯系
11.4.2 對象的聲明
11.4.3 通路資料成員
11.4.4 調用成員函數

11.5 綜合應用

11.6 構造函數

11.6.1 為何需要構造函數
11.6.2 構造函數的定義
11.6.3 帶參數構造函數
11.6.4 預設構造函數
11.6.5 重載構造函數

11.7 類對象成員的初始化

11.8 析構函數

11.8.1 為何需要析構函數
11.8.2 析構函數的定義
11.8.3 何時需要使用析構函數

11.9 堆棧和記憶體配置設定

11.9.1 記憶體管理概述
11.9.2 變量與對象的空間配置設定時機與初始化
11.9.3 為什麼使用new/delete操作符

11.10 拷貝構造函數

11.10.1 程式出錯的原因分析
11.10.2 拷貝構造函數
11.10.3 預設拷貝構造函數
11.10.4 淺拷貝與深拷貝

11.11 臨時對象和無名對象

11.11.1 臨時對象
11.11.2 無名對象

11.12 const成員

本章小結

習題

12 靜态成員與友元

12.1 靜态成員

12.1.1 為何需要靜态成員
12.1.2 靜态成員變量
12.1.3 靜态成員函數

12.2 友元

12.2.1 為何需要友元
12.2.2 友元函數
12.2.3 友元類

13 繼承與多态

13.1 繼承與派生的概念

13.2 繼承的實作方式

13.3 繼承類的構造與析構

13.3.1 繼承類的構造
13.3.2 構造函數的參數傳遞

13.4 基類通路控制

13.5 多态與虛函數

13.5.1 為什麼使用虛函數
13.5.2 虛函數
13.5.3 重載、隐藏與覆寫
13.5.4 虛函數的限制

13.6 多繼承

13.6.1 多繼承的實作
13.6.2 多繼承的二義性
13.6.3 多繼承的構造順序

13.7 虛基類

13.7.1 虛基類的定義
13.7.2 虛基類的構造函數和初始化

本章小結

習題

14 運算符重載

14.1 為何要重載運算符

14.2 運算符重載的實作

14.2.1 成員函數運算符重載
14.2.2 友元函數運算符重載

14.3 單目運算符和雙目運算符

14.4 引用傳回和值傳回

14.5 常見的運算符重載

14.5.1 指派與比較運算符
14.5.2 遞增與遞減運算符
14.5.3 數組存取辨別符

本章小結

習題

15 模闆

15.1 為何需要模闆

15.2 函數模闆

15.2.1 函數模闆的概念
15.2.2 函數模闆的定義
15.2.3 函數模闆的執行個體化
15.2.4 重載模闆函數

15.3 類模闆

15.3.1 類模闆的定義
15.3.2 使用類模闆

15.4 綜合應用

本章小結

16 标準模闆庫

16.1 标準模闆庫的基本組成

16.2 标準命名空間

16.3 容器

16.3.1 順序容器
16.3.2 關系式容器

16.4 疊代器

16.5 算法

本章小結

17 I/O流

17.1 流的概念

17.2 I/O标準流類

17.2.1 标準流的裝置名
17.2.2 原理

17.3 輸入輸出的格式控制

17.3.1 用ios類的成員函數進行格式控制
17.3.2 使用格式控制符進行格式控制

17.4 輸入輸出運算符的重載

17.4.1 重載輸出運算符
17.4.2 重載輸入運算符

17.5 檔案流

17.5.1 打開檔案
17.5.2 關閉檔案
17.5.3 寫入檔案
17.5.4 讀取檔案
17.5.5 常用操作和狀态檢測
17.5.6 讀寫随機檔案
17.5.7 二進制檔案的處理

本章小結

習題

18 異常處理

18.1 傳統的錯誤處理方式

18.2 異常處理的思想

18.3 異常處理的實作方式

18.4 構造和析構中的異常抛出

18.5 異正常格說明

18.6 标準異常

本章小結

附錄A 程式的寫作風格

思維導圖

C++遊戲程式設計

防止部落格圖床圖檔失效,防止圖檔源站外鍊:

http://www.processon.com/chart_image/5e5b42e6e4b069f82a1a6acf.png)

思維導圖線上編輯連結:

https://www.processon.com/view/5e5b42e6e4b069f82a1a6acc