內容提要
本書從最基礎的程式語言概念講起,共分6篇24章。前4篇完整地介紹C++的基礎語法知識,包括C++快速瀏覽、C++數據表達、C++過程設計和C++面向對象編程(OOP)。後2篇介紹C++的高級特性,如模板、異常、名字空間、RTTI等知識,以及編程實踐中要用到的C++標準庫、STL容器、泛型算法等套用性內容,結合實踐指南展開討論,並在最後根據一個具體的編程實例演示了C++知識點的綜合運用。
編輯推薦
“C/C++開發專家”引導你成為真正的程式設計師由淺入深,能俗易懂,注重趣味性,避免枯燥說教案例為主,內容生動,強調實踐性,編程實例豐富理念先進,方法為要,突出多角度,倡導正確思想全面介紹C++國際性標準版本詳細介紹C++標準庫以及STL、泛型算法所有代碼可在VC2003和DveC++4.9中編譯運行代碼先行,書中提供了詳細的示例代碼和詳解。
目錄
第1篇C++快速瀏覽
第1章了解C++語言
1.1程式語言
1.1.1機器語言
1.1.2彙編語言
1.1.3高級語言
1.2C++發展簡史
1.3C++開發環境
1.3.1C++編譯器
1.3.2C++標準與編譯器
1.3.3C++開發環境
1.3.4開發環境的選擇
第2章計算機的數值表示
2.1進制系統
2.1.1十進制
2.1.2二進制
2.1.3八進制和十六進制
2.2數值的表示
2.2.1整數的表示
2.2.2負數的表示
2.2.3整數的表示範圍
2.2.4浮點數的表示
2.2.5觀察數值的二進制表示*
2.3字元的表示
2.3.1ASCII碼
2.3.2漢字的編碼
2.3.3UNICODE編碼
2.3.4觀察字元的二進制表示*
2.3.5字元與字型
2.3.6鍵盤與輸入法
第3章初識C++程式
3.1開始C++編程
3.1.1C++程式的開發流程
3.1.2檔案與工程(項目)
3.2在Dev-C++中開發HelloWorld
3.2.1編輯HelloWorld
3.2.2編譯連線HelloWorld
3.2.3運行HelloWorld
3.3在VC2003中開發HelloWorld
3.3.1編輯HelloWorld
3.3.2編譯連線HelloWorld
3.3.3運行HelloWorld
3.4可能遇到的問題
3.5.1main函式
3.5.2函式
3.5.3對象
3.5.4頭檔案
3.5.5名字空間
3.5.6標準輸入輸出
3.5.7編譯器的行為
3.5理解HelloWorld
第2篇C++數據表達
第4章C++基礎語法
4.1理解c=2?r
4.2注釋
4.3標識符
4.3.1命名規則
4.3.2關鍵字
4.4數與類型
4.5基本類型
4.5.1整型
4.5.2浮點型
4.5.3布爾型
4.5.4字元型
4.5.5基本類型的位元組長度*
4.6字面常量
4.6.1整型常量
4.6.2浮點型常量
4.6.3布爾型常量
4.6.4字元型常量
4.6.5字元串常量
4.6.6字面常量的類型*
4.6.7變數
4.7語句
4.7.1表達式
4.7.2語句
4.7.3聲明語句
4.7.4賦值語句
4.7.5初始化語句
4.7.6使用調試器觀察變數值*
4.8操作符
4.8.1賦值操作符
4.8.2算術操作符
4.8.3關係操作符
4.8.4邏輯操作符
4.8.5條件操作符
4.8.6位操作符
4.8.7觀察二進制位操作*
4.8.8複合賦值操作符
4.8.9逗號操作符
4.8.10sizeof操作符
4.8.11typeid操作符
4.8.12操作符的優先權
4.9類型轉換
4.9.1隱式轉換
4.9.2顯式轉換
4.9.3算術轉換*
第5章數組與字元串
5.1數組
5.1.1數組的概念
5.1.2記憶體中的數組*
5.1.3數組的初始化
5.1.4數組元素的訪問
5.1.5安全使用數組下標*
5.1.6多維數組
5.2字元串
5.2.1傳統的字元串
5.2.2安全的使用字元串*
5.2.3std::string
第6章指針與引用
6.1指針
6.1.1指針的概念
6.1.2取址操作符
6.1.3取值操作符
6.1.4深入理解指針*
6.1.5指針的比較
6.1.6指針的加減
6.1.7理解指針的運算*
6.1.8數組與指針
6.1.9指針的指針
6.1.10指針數組
6.2引用
6.2.1引用的概念
6.2.2理解引用*
6.3動態記憶體分配
6.3.1new
6.3.2delete
6.3.3數組的記憶體分配
第7章自定義數據類型
7.1結構
7.1.1結構的定義
7.1.2定義結構變數
7.1.3結構的數據成員
7.1.4結構成員的引用
7.1.5結構的初始化
7.1.6位域
7.2聯合
7.2.1聯合的定義
7.2.2使用聯合
7.3枚舉
7.3.1枚舉定義
7.3.2枚舉與int
7.4typedef
7.5數據類型修飾符
7.5.1const
7.5.2volatile
第3篇C++過程設計
第8章C++流程控制
8.1判斷
8.1.1if
8.1.2語句塊*
8.1.3if…else
8.1.4if…elseif…else
8.1.5流程圖*
8.2分支
8.3循環
8.3.1while
8.3.2do…while
8.3.3for
8.4跳轉語句
8.4.1嵌套循環
8.4.2使用break中止循環
8.4.3使用break中止分支
8.4.4continue
8.4.5goto
8.4.6合理使用goto語句*
第9章C++函式
9.1函式
9.1.1函式
9.1.2函式調用
9.1.3使用調試器觀察函式的調用*
9.1.4函式參數
9.1.5返回值
9.2函式原型
9.2.1函式原型(functionprototype)
9.2.2main()函式
9.2.3定義帶參數的main()函式*
9.2.4默認參數
9.2.5 可變參數*
9.2.6內聯函式
9.3函式重載
9.3.1函式的重載
9.3.2重載函式的調用
9.3.3安全連線
9.3.4名字重組*
9.4遞歸函式
9.4.1遞歸函式
9.4.2使用調試器觀察函式的遞歸調用*
9.5函式與指針
9.5.1指向函式的指針
9.5.2理解函式指針*
9.5.3函式與值傳遞
第10章預處理
10.1預處理指令
10.2宏指令
10.2.1宏
10.2.2帶參數的宏
10.2.3宏與常量、函式*
10.2.4#操作符
10.2.5##操作符
10.2.6取消宏
10.2.7C++預定義宏
10.3條件編譯指令
10.3.1#if…#endif
10.3.2#else
10.3.3#elif
10.3.4#ifdefined和#if!defined
10.3.5#ifdef和#ifndef
10.4檔案包含指令
10.4.1#include
10.4.2合理使用頭檔案
10.5其他標準指令
10.5.1#error
10.5.2#line
10.5.3#pragma
第4篇C++面向對象編程
第11章C++的類
11.1類與對象
11.1.1對象
11.1.2類
11.2類的設計
11.2.1類的定義
11.2.2對象的定義
11.2.3數據成員的訪問
11.2.4成員訪問控制
11.2.5成員函式
11.2.6內聯成員函式
11.2.7成員函式的重載
11.2.8this指針
11.2.9記憶體中的類*
11.3類的討論
11.3.1類與結構
11.3.2抽象性
11.3.3封裝性
11.4 類的組合
11.4.1使用類的組合
11.4.2類的聲明
第12章類的特殊函式
12.1構造函式
12.1.1構造函式(constructor)
12.1.2帶參數的構造函式
12.1.3初始值列表
12.2成員初始值列表
12.2.1使用成員初始值列表
12.2.2對象成員初始化
12.3析構函式
12.3.1析構函式的定義
12.3.2對象成員的構造與析構*
12.4特殊構造函式
12.4.1轉換構造函式
12.4.2explicit
12.4.3拷貝構造函式
12.5操作符函式
12.5.1操作符重載
12.5.2一元操作符重載
12.5.3二元操作符重載
12.5.4全局操作符的重載
12.5.5可重載的操作符
12.5.6類型轉換函式
12.6const與mutable
12.6.1const
12.6.2mutable
12.7友元
12.7.1聲明某個函式為友元
12.7.2聲明某個類的成員函式為友元
12.7.3聲明某個類為友元
第13章繼承
13.1類的繼承
13.1.1繼承的概念
13.1.2類的繼承
13.1.3記憶體中的派生類*
13.1.4protected
13.1.5基類訪問控制
13.2構造與析構
13.2.1派生類的構造
13.2.2基類的初始化
13.2.3默認構造函式
13.2.4派生類的析構
13.3名字隱藏
13.3.1數據成員的隱藏
13.3.2成員函式的隱藏
13.3.3理解隱藏
第14章多態性
14.1類型轉換
14.1.1向上轉換
14.1.2向下轉換
14.2虛函式與多態
14.2.1類型轉換帶來的問題
14.2.2虛函式
14.2.3虛函式的填充*
14.2.4多態性
14.2.5虛析構函式
14.2.6純虛函式
14.2.7抽象類
14.3多級繼承
14.3.1多級繼承的使用
14.3.2虛函式的多次填充*
14.4多繼承
14.4.1多繼承的使用
14.4.2多繼承帶來的問題
14.4.3虛擬繼承
第5篇C++高級特性
第15章模板
15.1函式模板
15.1.1函式模板的概念
15.1.2模板參數與函式參數
15.1.3函式模板的實例化
15.1.4函式模板的重載
15.1.5函式模板的特化*
15.2類模板
15.2.1類模板的概念
15.2.2類模板的成員函式
15.2.3包含多個參數的類模板
15.2.4類模板的默認參數
第16章C++異常處理
16.1傳統的錯誤處理
16.2拋出異常
16.3捕獲異常
16.3.1使用catch捕獲異常
16.3.2捕獲不同類型的異常
16.3.3捕獲所有的異常
16.3.4在catch塊拋出異常
16.3.5未捕獲的異常
16.3.6定製terminate()的行為*
16.4對拋出異常的聲明
第17章名字空間與域
17.1名字空間
17.1.1名字空間定義
17.1.2 using聲明
17.1.3using指令
17.1.4名字空間的別名
17.2作用域
17.3局部作用域
17.3.1局部作用域的概念
17.3.2for語句的作用域
17.3.3case語句塊的作用域
17.3.4函式的作用域
17.4局部變數的存儲類型
17.4.1自動存儲類型
17.4.2暫存器存儲類型
17.4.3靜態存儲類型
17.5名字空間域
17.5.1全局域
17.5.2外部存儲類型
17.5.3檔案域
17.5.4名字空間域
17.6類域
17.6.1類域的概念
17.6.2static數據成員
17.6.3static成員函式
17.7作用域的嵌套
17.7.1語句塊的嵌套
17.7.2名字空間的嵌套
17.7.3類的嵌套
17.7.4在語句塊中定義類
17.7.5嵌套帶來的隱藏
17.8對象的生命周期
第18章運行時類型信息
18.1動態類型的獲取
18.1.1typeid關鍵字
18.1.2type_info
18.1.3打開RTTI開關*
18.1.4獲取對象的動態類型
18.2C++風格的類型轉換
18.2.1動態類型轉換dynamic_cast
18.2.2靜態類型轉換static_cast
18.2.3再