C++ 開發從入門到精通


C++ 開發從入門到精通

選擇一本合適的書

本書的特色

本書的內容

各章的內容版式

再看邏輯運算符

贈送資料
售后服務
本書的讀者對象

本書實例目錄

1 說真的,我們還要學習C++嗎

1.1 C++概述

1.2 開發工具——Visual C++

1.2.1 先看Visual C++的基本特點
1.2.2 安裝Visual C++
1.2.3 Visual C++集成開發環境介紹

1.3 使用Visual Studio 2010

安裝Visual Studio 2010

1.4 第一個C++程序

1.5 技術解惑

1.5.1 初學者經常不知道自己該學什么
1.5.2 初學者需要知道的正確觀念

2 C++的重要特質分析

2.1 什么是面向對象(object-oriented)

2.1.1 什么是OOP
2.1.2 面向對象編程

2.2 分析C++的程序結構

2.2.1 從一段代碼看C++程序結構
2.2.2 看C++的文件組織

2.3 必須遵循的編碼規范

2.3.1 養成良好的風格
2.3.2 必須使用的注釋
2.3.3 代碼也需要化妝

2.4 輸入輸出基礎

2.4.1 標准輸入與輸出對象
2.4.2 一個使用IO庫的程序

2.5 算法是程序的靈魂

2.5.1 算法的概念
2.5.2 流程圖表示算法
2.5.3 計算機語言表示算法

2.6 技術解惑

2.6.1 C++是面向對象,C是面向過程,那么這個對象和過程是什么意思呢
2.6.2 面向對象和面向過程的區別
2.6.3 學好C++的建議

3 你不一定了解的基礎語法

3.1 先看標識符

3.1.1 C++中的保留字
3.1.2 需要遵循的命名規則

3.2 最基本的數據類型

3.2.1 數字運算型
3.2.2 邏輯運算型
3.2.3 字符型和字符串

3.3 標准類型庫基礎

3.3.1 命名空間using聲明
3.3.2 標准庫的string類
3.3.3 vector類型簡介
3.3.4 迭代器簡介
3.3.5 bitset類型初步

3.4 技術解惑

3.4.1 C++的標識符長度應當符合“min-length && max-information”原則
3.4.2 字符和字符串有什么區別
3.4.3 C++中string類字符串和C中char*/char[]型字符串的差別
3.4.4 C++字符串和C字符串的轉換
3.4.5 C++字符串和字符串結束標志

4 你不一定了解的變量和常量

4.1 先來看變量

4.1.1 定義變量
4.1.2 聲明變量

4.2 變量的作用域

4.2.1 作用域和生存期
4.2.2 作用域限定符
4.2.3 存儲類型
4.2.4 C++變量初始化
4.2.5 C++變量命名規范

4.3 再來看常量

4.3.1 什么是常量
4.3.2 常量的分類
4.3.3 常量的應用

4.4 技術解惑

4.4.1 C++常量的命名需要遵循一定的規范嗎
4.4.2 在C++程序中,用const定義常量還是用 define
4.4.3 const是個很重要的關鍵字,在使用時應該注意些什么呢
4.4.4 關於全局變量的初始化,C語言和C++有區別嗎
4.4.5 C/C++變量在內存中的分布
4.4.6 靜態變量的初始化順序

5 你不一定了解的運算符

5.1 先看賦值運算符

5.2 再看算術運算符

5.3 再看比較運算符

5.4 再看邏輯運算符

5.5 單獨看++/−−運算符

5.6 再看位運算符

5.7 再看求字節數運算符

5.8 再看條件運算符

5.9 再看逗號運算符

5.10 技術解惑

5.10.1 避免運算結果溢出的一個方案
5.10.2 運算符重載的權衡
5.10.3 運算符的優先級和結合性
5.10.4 運算符重載是對已有運算符賦予多重含義

6 說說表達式

6.1 何謂表達式

6.1.1 看天下幾分——表達式的分類
6.1.2 看表達式的書寫方式

6.2 說說類型轉換

6.2.1 先看隱式轉換
6.2.2 再看顯式轉換

6.3 技術解惑

6.3.1 C/C++ 表達式的限制
6.3.2 表達式的真正功能

7 流程控制語句

7.1 最簡單的語句和語句塊

7.1.1 最簡單的語句
7.1.2 說說語句塊
7.1.3 最后是語句的總結

7.2 最常見的順序結構

7.3 選擇結構

7.3.1 先看單分支結構語句
7.3.2 再看雙分支結構語句
7.3.3 還要使用多分支結構語句

7.4 循環結構詳解

7.4.1 for語句循環
7.4.2 while語句
7.4.3 說說do-while語句

7.5 跳轉語句

7.5.1 何謂break語句
7.5.2 何謂continue語句
7.5.3 何謂goto語句

7.6 技術解惑

7.6.1 循環中斷的問題
7.6.2 分析循環語句的效率
7.6.3 幾種循環語句的比較
7.6.4 C++中,for循環該怎么讀
7.6.5 一個C++循環結構嵌套的問題
7.6.6 break語句和continue語句的區別

8 學習C++的最大障礙——指針

8.1 說說指針的基本概念

8.2 定義指針的幾種方式

8.2.1 先定義指針
8.2.2 再識別指針

8.3 指針的分類

8.4 指針初始化

8.4.1 第一步:指針地址初始化
8.4.2 第二步:變量地址初始化
8.4.3 第三步:new分配內存單元
8.4.4 第四步:malloc函數分配內存單元

8.5 指針運算

8.5.1 算數運算
8.5.2 關系運算

8.6 指針的指針

8.7 使用指針

8.7.1 指針賦值
8.7.2 *操作符

8.8 分析指針和引用的關系

8.9 特殊指針

8.9.1 先看void型指針
8.9.2 再看空指針

8.10 技術解惑

8.10.1 指針的命名規范
8.10.2 C++中指針和引用的區別
8.10.3 變量在語言中的實質
8.10.4 C++開發如何避免和解決野指針
8.10.5 常量指針常量和常量引用常量
8.10.6 指針常量和引用常量的對比
8.10.7 常量指針和常量引用的對比

9 復合類型

9.1 數組基礎

9.1.1 先定義數組
9.1.2 再看高級數組
9.1.3 分析數組的完整性
9.1.4 看維數不全
9.1.5 看無維數

9.2 動態數組

9.2.1 在堆上分配空間的動態數組
9.2.2 在棧上分配空間的“假動態”數組

9.3 數組存儲

9.3.1 列存儲
9.3.2 行存儲

9.4 字符數組

9.4.1 定義字符數組
9.4.2 字符數組和字符串指針變量

9.5 數組初始化

9.5.1 先看定義時的初始化
9.5.2 初始化賦值語句

9.6 指針和數組

9.6.1 指向數組的指針
9.6.2 指針數組

9.7 使用數組

9.7.1 索引方式
9.7.2 指針方式

9.8 枚舉

9.8.1 枚舉基礎
9.8.2 使用枚舉

9.9 結構體

9.9.1 指向結構的指針
9.9.2 使用結構體

9.10 聯合

9.11 自定義類型

9.11.1 先看typedef的作用
9.11.2 再看typedef的使用

9.12 技術解惑

9.12.1 字符數組和字符串的區別
9.12.2 字符數組和字符串可以相互轉換
9.12.3 靜態數組的速度快於動態數組
9.12.4 Arrays與Vector的區別
9.12.5 一道關於數組的面試題
9.12.6 數組名不是指針
9.12.7 作為一個用戶自定義的類型,其所占用的內存空間是多少呢

10 函數

10.1 C++函數基礎

10.1.1 先看定義方式
10.1.2 函數分類
10.1.3 函數定義實例

10.2 函數的參數

10.2.1 何謂形參實參
10.2.2 使用數組做函數參數

10.3 返回值和返回語句

10.4 調用函數

10.4.1 單獨調用
10.4.2 函數表達式
10.4.3 實參調用
10.4.4 參數傳遞

10.5 函數遞歸

10.6 指向函數的指針

10.7 將函數作為參數

10.8 變量的作用域和生存期

10.8.1 變量作用域
10.8.2 靜態存儲變量和動態存儲變量

10.9 函數main()和命令行處理

10.10 技術解惑

10.10.1 用typedef來定義一個函數指針類型
10.10.2 const關鍵字在函數中的作用
10.10.3 C++函數的內存分配機制
10.10.4 主函數和子函數的關系
10.10.5 函數聲明和函數定義的區別
10.10.6 使用全局變量的注意事項
10.10.7 使用寄存器變量的注意事項
10.10.8 自動變量的特點

11 輸入和輸出

11.1 iostream對象

11.1.1 標准的I/O接口
11.1.2 文件I/O
11.1.3 字符串I/O

11.2 輸出

11.2.1 預定義類型輸出
11.2.2 自定義類型輸出

11.3 輸入

11.3.1 預定義類型輸入
11.3.2 自定義類型輸入

11.4 輸入/輸出格式化

11.4.1 使用ios類成員函數
11.4.2 使用操縱函數

11.5 文件

11.5.1 打開和關閉
11.5.2 順序讀寫
11.5.3 隨機讀寫
11.5.4 二進制文件
11.5.5 檢測EOF

11.6 技術解惑

11.6.1 輸入/輸出時數的進制問題
11.6.2 數據間隔
11.6.3 內存文件映射
11.6.4 get和put的值的差異
11.6.5 使用控制符控制輸出格式

12 類和封裝

12.1 類

12.1.1 先聲明類
12.1.2 再看類的屬性
12.1.3 再看類的方法
12.1.4 再看構造函數
12.1.5 再看析構函數
12.1.6 再看靜態成員
12.1.7 友元
12.1.8 再看修飾符
12.1.9 指向類成員的指針
12.1.10 嵌套類
12.1.11 類文件的組織

12.2 對象

12.2.1 先定義對象
12.2.2 再使用對象
12.2.3 再看this指針

12.3 技術解惑

12.3.1 淺拷貝和深拷貝
12.3.2 構造函數的錯誤認識和正確認識
12.3.3 保護性析構函數的作用

13 命名空間和作用域

13.1 命名空間介紹

13.2 定義命名空間

13.3 使用命名空間

13.3.1 使用域限定符
13.3.2 使用using指令
13.3.3 using聲明
13.3.4 別名

13.4 作用域

13.4.1 什么是作用域
13.4.2 作用域的分類

13.5 技術解惑

13.5.1 using指令與using聲明的比較
13.5.2 為什么需要命名空間
13.5.3 命名空間的作用
13.5.4 在C++中使用這些頭文件的方法

14 類的繼承和派生

14.1 繼承與派生的基本概念

14.2 C++繼承機制

14.3 繼承和派生的基本知識

14.3.1 單重繼承、多重繼承與繼承鏈
14.3.2 公有派生和私有派生
14.3.3 保護成員與保護派生
14.3.4 友元類和友元函數

14.4 派生一個類

14.4.1 先看基類的使用狀況
14.4.2 派生的使用狀況
14.4.3 再看構造函數
14.4.4 再看析構函數
14.4.5 使用同名方法
14.4.6 使用同名屬性

14.5 單重繼承和多重繼承

14.5.1 單重繼承
14.5.2 多重繼承
14.5.3 構造函數和析構函數

14.6 虛繼承和虛基類

14.7 技術解惑

14.7.1 通過虛繼承解決二義性問題
14.7.2 使用C++虛基類的注意事項
14.7.3 一個問題
14.7.4 多重繼承的二義性
14.7.5 允許派生類中的成員名和基類中的成員名相同

15 多態性詳解

15.1 基本概念

15.2 先看宏多態

15.3 虛函數

15.3.1 虛函數基礎
15.3.2 靜態綁定和動態綁定
15.3.3 純虛函數

15.4 抽象類

15.4.1 什么是抽象類
15.4.2 抽象類的派生

15.5 運算符重載

15.5.1 運算符重載基礎
15.5.2 重載一元運算符
15.5.3 重載二元運算符

15.6 函數重載

15.6.1 函數重載基礎
15.6.2 參數類型不同的重載

15.7 流的重載

15.7.1 流插入重載
15.7.2 流提取重載

15.8 覆蓋

15.8.1 覆蓋函數
15.8.2 覆蓋變量

15.9 技術解惑

15.9.1 重載、覆蓋和隱藏的區別
15.9.2 在重載運算符的時候要權衡實施的必要性
15.9.3 為什么需要函數重載
15.9.4 重載函數的調用匹配
15.9.5 另一種虛方法查找方案
15.9.6 兩種重載方法的比較

16 模板的威力

16.1 基本概念

16.2 類模板

16.2.1 定義類模板
16.2.2 使用類模板
16.2.3 類模板的派生
16.2.4 類模板和模板類的區別

16.3 函數模板

16.3.1 定義函數模板
16.3.2 函數模板示例
16.3.3 模板實例化

16.4 模板組合

16.5 技術解惑

16.5.1 在函數模板中使用多個類型參數時要避免類型參數的二義性
16.5.2 函數模板和模板函數的區別
16.5.3 函數模板和類模板的區別
16.5.4 仿函數的用處

17 進一步剖析string類

17.1 string類的方法

17.2 string類的運算

17.2.1 查找函數
17.2.2 替換函數
17.2.3 插入函數
17.2.4 刪除函數
17.2.5 比較函數
17.2.6 連接函數
17.2.7 賦值函數
17.2.8 特性描述函數
17.2.9 構造函數
17.2.10 迭代器處理
17.2.11 其他幾種處理函數

17.3 string類綜合應用

17.3.1 頭文件123.h
17.3.2 類實現文件yinyong.cpp
17.3.3 測試使用主文件zonghe.cpp

17.4 技術解惑

17.4.1 C++字符串和C字符串的轉換
17.4.2 大小和容量函數
17.4.3 cstring類與string類的比較

18 異常處理

18.1 什么是異常處理

18.2 C++的異常處理機制

18.2.1 throw拋出異常
18.2.2 raise拋出異常
18.2.3 try-catch異常捕獲

18.3 異常處理中的構造和析構

18.4 C++異常處理機制總結

18.5 技術解惑

18.5.1 編寫軟件的目標
18.5.2 關於C++的new關鍵字的異常處理
18.5.3 C語言異常處理和結構化異常處理有什么區別?
18.5.4 C++拋出異常不捕獲,程序的空間會釋放嗎?
18.5.5 throw拋出異常的特點
18.5.6 關於C 異常處理的心得體會
18.5.7 慎用catch(...)
18.5.8 慎用繼承體系里的類作為catch的參數
18.5.9 對象析構函數被調用的3種場合
18.5.10 不要在異常處理體系中寄希望於類型轉換
18.5.11 有C++異常處理體系捕獲不到的東西嗎?
18.5.12 set_unexpected函數的用處
18.5.13 不要讓異常逃離析構函數

19 內存管理

19.1 內存分類

19.2 棧內存管理

19.2.1 申請棧內存
19.2.2 使用棧內存
19.2.3 釋放棧內存
19.2.4 改變內存大小

19.3 堆內存管理

19.3.1 申請堆內存
19.3.2 使用堆內存
19.3.3 釋放堆內存
19.3.4 改變大小

19.4 技術解惑

19.4.1 堆和棧的區別
19.4.2 常見的內存錯誤及其對策
19.4.3 防止發生溢出錯誤

20 預處理

20.1 什么是預處理

20.2 C++中常見的預處理

20.2.1 文件包含
20.2.2 條件編譯
20.2.3 布局控制
20.2.4 宏替換
20.2.5 其他預編譯指令

20.3 分析宏的常見陷阱

20.4 技術解惑

20.4.1 預處理的未來
20.4.2 兩者的意義
20.4.3 一個初學者的問題

21 錯誤和調試

21.1 什么是錯誤

21.1.1 Bug的由來
21.1.2 程序設計方面的解釋

21.2 常見的錯誤分析

21.3 程序調試常見錯誤

21.4 C++編程中的調試技巧

21.4.1 調試標記
21.4.2 運行期間調試標記
21.4.3 把變量和表達式轉換成字符串
21.4.4 C語言的assert()

21.5 技術解惑

21.5.1 編寫規范易懂的代碼
21.5.2 編寫安全可靠的代碼
21.5.3 Visual C++調試技術
21.5.4 常見的非語法錯誤

22 初入江湖——圖書借閱系統的實現過程

22.1 項目要求

22.2 需求分析

22.3 系統具體實現

22.3.1 數據結構設計
22.3.2 系統主文件rent.cpp
22.3.3 菜單處理文件mainfunction.h
22.3.4 函數定義文件subfunction.h
22.3.5 菜單處理實現文件mainfunction.cpp
22.3.6 功能函數實現文件subfunction.cpp

23 開始闖關(1)——C++實現網絡應用項目

23.1 項目要求

23.1.1 客戶機/服務器模式介紹
23.1.2 客戶機/服務器模式的運作流程

23.2 實現原理

23.2.1 什么是winsocket編程接口
23.2.2 winsocket中的函數

23.3 具體實現

23.3.1 客戶端和服務器端的公用文件
23.3.2 實現服務器端
23.3.3 實現客戶端

24 開始闖關(2)——C++實現游戲項目

24.1 計算機游戲基礎

24.1.1 游戲的基本流程
24.1.2 游戲元素
24.1.3 游戲層次

24.2 項目分析

24.2.1 游戲的角色
24.2.2 游戲界面表現

24.3 具體實現

24.3.1 實現相關位圖
24.3.2 變量與函數
24.3.3 實現全屏
24.3.4 類初始化
24.3.5 實現具體顯示界面
24.3.6 信息提示
24.3.7 和時間段相關的操作
24.3.8 鍵盤操作
24.3.9 我方發射子彈
24.3.10 敵機出現
24.3.11 敵機發射子彈
24.3.12 敵機子彈移動
24.3.13 火力實現

25 功成名就——DirectX實現媒體播放器

25.1 DirectX技術基礎

25.1.1 DirectX技術概述
25.1.2 DirectX的基本結構及組成
25.1.3 DirectX主要組件介紹

25.2 系統分析和設計

25.2.1 功能需求和效果展示
25.2.2 設計FilterGraph結構

25.3 實現媒體控制類

25.3.1 CDXGraph類初始化
25.3.2 創建Graph濾波器鏈表
25.3.3 設計圖像窗口
25.3.4 媒體播放控制
25.3.5 視頻全屏顯示
25.3.6 抓圖保存

25.4 實現播放器主題

25.4.1 打開一個媒體文件
25.4.2 渲染媒體文件
25.4.3 播放媒體文件
25.4.4 實現控制功能
25.4.5 實現拖放功能
25.4.6 實現音量調節功能
25.4.7 添加背景圖片

26 笑傲江湖——C++網絡視頻監控系統

26.1 系統分析

26.2 系統設計

26.3 系統預覽

26.4 數據庫設計

26.5 選購監控卡

26.6 具體編程實現

26.6.1 設計公共模塊
26.6.2 設計主窗體

26.7 設計管理員登錄模塊

26.8 設計監控管理模塊

26.8.1 監控管理技術分析
26.8.2 編程監控管理
26.8.3 單元測試處理

26.9 設計廣角自動監控模塊

26.9.1 可行性分析
26.9.2 編程實現
26.9.3 單元測試

26.10 設計視頻回放模塊

26.11 分析絢麗界面的實現方法

思維導圖

C++ 開發從入門到精通

防止博客圖床圖片失效,防止圖片源站外鏈:

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

思維導圖在線編輯鏈接:

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM