出版時間:2007-11 出版社:電子工業(yè)出版社 作者:白喬 頁數(shù):477 字數(shù):787200
Tag標簽:無
內(nèi)容概要
本書著重介紹標準C++語言,即1998年由ISO正式推出的關于C++的國際性標準版本。 本書從最基礎的編程語言概念講起,共分6篇24章。前4篇完整地介紹C++的基礎語法知識,包括C++快速瀏覽、C++數(shù)據(jù)表達、C++過程設計和C++面向對象編程(OOP)。后2篇介紹C++的高級特性,如模板、異常、名字空間、RTTI等知識,以及編程實踐中要用到的C++標準庫、STL容器、泛型算法等應用性內(nèi)容,結合實踐指南展開討論,并在最后根據(jù)一個具體的編程實例演示了C++知識點的綜合運用。 本書具有由淺入深、通俗易懂和注重實踐等特點,適合于沒有或者缺乏C++程序設計經(jīng)驗的初學者作為標準C++語言的自學教材,同時也適合于已掌握C++基礎編程技術、需要提高C++實踐能力以及對標準C++語言感興趣的程序員進行閱讀。
書籍目錄
第1篇 C++快速瀏覽 第1章 了解C++語言 1.1 編程語言 1.1.1 機器語言 1.1.2 匯編語言 1.1.3 高級語言 1.2 C++發(fā)展簡史 1.3 C++開發(fā)環(huán)境 1.3.1 C++編譯器 1.3.2 C++標準與編譯器 1.3.3 C++開發(fā)環(huán)境 1.3.4 開發(fā)環(huán)境的選擇 第2章 計算機的數(shù)值表示 2.1 進制系統(tǒng) 2.1.1 十進制 2.1.2 二進制 2.1.3 八進制和十六進制 2.2 數(shù)值的表示 2.2.1 整數(shù)的表示 2.2.2 負數(shù)的表示 2.2.3 整數(shù)的表示范圍 2.2.4 浮點數(shù)的表示 2.2.5 觀察數(shù)值的二進制表示* 2.3 字符的表示 2.3.1 ASCII碼 2.3.2 漢字的編碼 2.3.3 UNICODE編碼 2.3.4 觀察字符的二進制表示* 2.3.5 字符與字體 2.3.6 鍵盤與輸入法 第3章 初識C++程序 3.1 開始C++編程 3.1.1 C++程序的開發(fā)流程 3.1.2 文件與工程(項目) 3.2 在Dev-C++中開發(fā)HelloWorld 3.2.1 編輯HelloWorld 3.2.2 編譯連接HelloWorld 3.2.3 運行HelloWorld 3.3 在VC 2003中開發(fā)HelloWorld 3.3.1 編輯HelloWorld 3.3.2 編譯連接Hello World 3.3.3 運行HelloWorld 3.4 可能遇到的問題 3.5.1 main函數(shù) 3.5.2 函數(shù) 3.5.3 對象 3.5.4 頭文件 3.5.5 名字空間 3.5.6 標準輸入輸出 3.5.7 編譯器的行為 3.5 理解HelloWorld 第2篇 C++數(shù)據(jù)表達 第4章 C++基礎語法 4.1 理解c=2?r 4.2 注釋 4.3 標識符 4.3.1 命名規(guī)則 4.3.2 關鍵字 4.4 數(shù)與類型 4.5 基本類型 4.5.1 整型 4.5.2 浮點型 4.5.3 布爾型 4.5.4 字符型 4.5.5 基本類型的字節(jié)長度* 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.10 sizeof操作符 4.8.11 typeid操作符 4.8.12 操作符的優(yōu)先級 4.9 類型轉換 4.9.1 隱式轉換 4.9.2 顯式轉換 4.9.3 算術轉換* 第5章 數(shù)組與字符串 5.1 數(shù)組 5.1.1 數(shù)組的概念 5.1.2 內(nèi)存中的數(shù)組* 5.1.3 數(shù)組的初始化 5.1.4 數(shù)組元素的訪問 5.1.5 安全使用數(shù)組下標* 5.1.6 多維數(shù)組 5.2 字符串 5.2.1 傳統(tǒng)的字符串 5.2.2 安全的使用字符串* 5.2.3 std::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 數(shù)組與指針 6.1.9 指針的指針 6.1.10 指針數(shù)組 6.2 引用 6.2.1 引用的概念 6.2.2 理解引用* 6.3 動態(tài)內(nèi)存分配 6.3.1 new 6.3.2 delete 6.3.3 數(shù)組的內(nèi)存分配 第7章 自定義數(shù)據(jù)類型 7.1 結構 7.1.1 結構的定義 7.1.2 定義結構變量 7.1.3 結構的數(shù)據(jù)成員 7.1.4 結構成員的引用 7.1.5 結構的初始化 7.1.6 位域 7.2 聯(lián)合 7.2.1 聯(lián)合的定義 7.2.2 使用聯(lián)合 7.3 枚舉 7.3.1 枚舉定義 7.3.2 枚舉與int 7.4 typedef 7.5 數(shù)據(jù)類型修飾符 7.5.1 const 7.5.2 volatile 第3篇 C++過程設計 第8章 C++流程控制 8.1 判斷 8.1.1 if 8.1.2 語句塊* 8.1.3 if…else 8.1.4 if…else if…else 8.1.5 流程圖* 8.2 分支 8.3 循環(huán) 8.3.1 while 8.3.2 do…while 8.3.3 for 8.4 跳轉語句 8.4.1 嵌套循環(huán) 8.4.2 使用break中止循環(huán) 8.4.3 使用break中止分支 8.4.4 continue 8.4.5 goto 8.4.6 合理使用goto語句* 第9章 C++函數(shù) 9.1 函數(shù) 9.1.1 函數(shù) 9.1.2 函數(shù)調用 9.1.3 使用調試器觀察函數(shù)的調用* 9.1.4 函數(shù)參數(shù) 9.1.5 返回值 9.2 函數(shù)原型 9.2.1 函數(shù)原型(function prototype) 9.2.2 main()函數(shù) 9.2.3 定義帶參數(shù)的main()函數(shù)* 9.2.4 默認參數(shù) 9.2.5 可變參數(shù)* 9.2.6 內(nèi)聯(lián)函數(shù) 9.3 函數(shù)重載 9.3.1 函數(shù)的重載 9.3.2 重載函數(shù)的調用 9.3.3 安全連接 9.3.4 名字重組* 9.4 遞歸函數(shù) 9.4.1 遞歸函數(shù) 9.4.2 使用調試器觀察函數(shù)的遞歸調用* 9.5 函數(shù)與指針 9.5.1 指向函數(shù)的指針 9.5.2 理解函數(shù)指針* 9.5.3 函數(shù)與值傳遞 第10章 預處理 10.1 預處理指令 10.2 宏指令 10.2.1 宏 10.2.2 帶參數(shù)的宏 10.2.3 宏與常量、函數(shù)* 10.2.4 #操作符 10.2.5 ##操作符 10.2.6 取消宏 10.2.7 C++預定義宏 10.3 條件編譯指令 10.3.1 #if…#endif 10.3.2 #else 10.3.3 #elif 10.3.4 #if defined和#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 數(shù)據(jù)成員的訪問 11.2.4 成員訪問控制 11.2.5 成員函數(shù) 11.2.6 內(nèi)聯(lián)成員函數(shù) 11.2.7 成員函數(shù)的重載 11.2.8 this指針 11.2.9 內(nèi)存中的類* 11.3 類的討論 11.3.1 類與結構 11.3.2 抽象性 11.3.3 封裝性 11.4 類的組合 11.4.1 使用類的組合 11.4.2 類的聲明 第12章 類的特殊函數(shù) 12.1 構造函數(shù) 12.1.1 構造函數(shù)(constructor) 12.1.2 帶參數(shù)的構造函數(shù) 12.1.3 初始值列表 12.2 成員初始值列表 12.2.1 使用成員初始值列表 12.2.2 對象成員初始化 12.3 析構函數(shù) 12.3.1 析構函數(shù)的定義 12.3.2 對象成員的構造與析構* 12.4 特殊構造函數(shù) 12.4.1 轉換構造函數(shù) 12.4.2 explicit 12.4.3 拷貝構造函數(shù) 12.5 操作符函數(shù) 12.5.1 操作符重載 12.5.2 一元操作符重載 12.5.3 二元操作符重載 12.5.4 全局操作符的重載 12.5.5 可重載的操作符 12.5.6 類型轉換函數(shù) 12.6 const與mutable 12.6.1 const 12.6.2 mutable 12.7 友元 12.7.1 聲明某個函數(shù)為友元 12.7.2 聲明某個類的成員函數(shù)為友元 12.7.3 聲明某個類為友元 第13章 繼承 13.1 類的繼承 13.1.1 繼承的概念 13.1.2 類的繼承 13.1.3 內(nèi)存中的派生類* 13.1.4 protected 13.1.5 基類訪問控制 13.2 構造與析構 13.2.1 派生類的構造 13.2.2 基類的初始化 13.2.3 默認構造函數(shù) 13.2.4 派生類的析構 13.3 名字隱藏 13.3.1 數(shù)據(jù)成員的隱藏 13.3.2 成員函數(shù)的隱藏 13.3.3 理解隱藏 第14章 多態(tài)性 14.1 類型轉換 14.1.1 向上轉換 14.1.2 向下轉換 14.2 虛函數(shù)與多態(tài) 14.2.1 類型轉換帶來的問題 14.2.2 虛函數(shù) 14.2.3 虛函數(shù)的填充* 14.2.4 多態(tài)性 14.2.5 虛析構函數(shù) 14.2.6 純虛函數(shù) 14.2.7 抽象類 14.3 多級繼承 14.3.1 多級繼承的使用 14.3.2 虛函數(shù)的多次填充* 14.4 多繼承 14.4.1 多繼承的使用 14.4.2 多繼承帶來的問題 14.4.3 虛擬繼承 第5篇 C++高級特性 第15章 模板 15.1 函數(shù)模板 15.1.1 函數(shù)模板的概念 15.1.2 模板參數(shù)與函數(shù)參數(shù) 15.1.3 函數(shù)模板的實例化 15.1.4 函數(shù)模板的重載 15.1.5 函數(shù)模板的特化* 15.2 類模板 15.2.1 類模板的概念 15.2.2 類模板的成員函數(shù) 15.2.3 包含多個參數(shù)的類模板 15.2.4 類模板的默認參數(shù) 第16章 C++異常處理 16.1 傳統(tǒng)的錯誤處理 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.3 using指令 17.1.4 名字空間的別名 17.2 作用域 17.3 局部作用域 17.3.1 局部作用域的概念 17.3.2 for語句的作用域 17.3.3 case語句塊的作用域 17.3.4 函數(shù)的作用域 17.4 局部變量的存儲類型 17.4.1 自動存儲類型 17.4.2 寄存器存儲類型 17.4.3 靜態(tài)存儲類型 17.5 名字空間域 17.5.1 全局域 17.5.2 外部存儲類型 17.5.3 文件域 17.5.4 名字空間域 17.6 類域 17.6.1 類域的概念 17.6.2 static數(shù)據(jù)成員 17.6.3 static成員函數(shù) 17.7 作用域的嵌套 17.7.1 語句塊的嵌套 17.7.2 名字空間的嵌套 17.7.3 類的嵌套 17.7.4 在語句塊中定義類 17.7.5 嵌套帶來的隱藏 17.8 對象的生命周期 第18章 運行時類型信息 18.1 動態(tài)類型的獲取 18.1.1 typeid關鍵字 18.1.2 type_info 18.1.3 打開RTTI開關* 18.1.4 獲取對象的動態(tài)類型 18.2 C++風格的類型轉換 18.2.1 動態(tài)類型轉換dynamic_cast 18.2.2 靜態(tài)類型轉換static_cast 18.2.3 再解釋類型轉換reinterpret_cast 18.2.4 常類型轉換const_cast 第6篇 C++編程實踐 第19章 C++標準庫 19.1 C++標準庫的組成 19.2 字符串庫 19.2.1 字符串的構造與賦值 19.2.2 字符串的連接 19.2.3 字符串的比較 19.2.4 字符串的下標 19.2.5 子串 19.2.6 字符串的查找 19.2.7 string與C-style字符串 19.2.8 空字符串 19.3 復數(shù)類 19.3.1 復數(shù)的構造 19.3.2 復數(shù)的四則運算 19.3.3 復數(shù)的操作函數(shù) 19.4 異常類 19.5 C標準庫 19.5.1 assert宏 19.5.2 類型函數(shù) 19.5.3 數(shù)學函數(shù) 19.5.4 類型轉換函數(shù) 19.5.5 隨機數(shù)函數(shù) 19.5.6 可變參數(shù)處理 19.5.7 內(nèi)存操作函數(shù) 19.5.8 系統(tǒng)控制函數(shù) 19.5.9 字符串處理函數(shù) 19.5.10 時間處理函數(shù) 第20章 C++流 20.1 輸入輸出流 20.1.1 輸入輸出流 20.1.2 流操作符 20.1.3 格式化輸出函數(shù) 20.1.4 格式操縱符 20.1.5 流的輸出 20.1.6 緩沖輸出 20.1.7 流的輸入 20.1.8 狀態(tài)標志* 20.2 標準輸入輸出流 20.3 文件流 20.3.1 文件的打開和關閉 20.3.2 二進制輸入輸出 20.3.3 定位文件位置 20.4 字符串流 20.4.1 ostringstream 20.4.2 istringstream 20.4.3 stringstream 第21章 STL容器 21.1 標準模板庫 21.1.1 STL的概念 21.1.2 STL的組成 21.1.3 STL的使用實例 21.2 容器 21.2.1 STL容器 21.2.2 容器的模板參數(shù) 21.2.3 容器的比較 21.2.4 容器的賦值和交換 21.2.5 operator [] 21.2.6 指示器的獲取 21.2.7 元素的迭代訪問 21.2.8 容器的尺寸 21.3 向量 21.3.1 向量的構造 21.3.2 向量元素的訪問 21.3.3 向量元素的添加 21.3.4 向量元素的刪除 21.4 列表 21.4.1 列表的構造 21.4.2 列表元素的訪問 21.4.3 列表元素的添加 21.4.4 列表元素的刪除 21.5 雙端隊列 21.5.1 雙端隊列的構造 21.5.2 雙端隊列元素的訪問 21.5.3 雙端隊列元素的添加 21.5.4 雙端隊列元素的刪除 21.6 容器適配器 21.6.1 棧 21.6.2 隊列 21.6.3 優(yōu)先級隊列 21.7 映射 21.7.1 映射的構造 21.7.2 映射元素的訪問 21.7.3 映射元素的添加 21.7.4 映射元素的刪除 21.7.5 映射元素的查找 21.7.6 多重映射 21.8 集合 21.8.1 集合的構造 21.8.2 集合元素的訪問 21.8.3 集合元素的添加 21.8.4 集合元素的刪除 21.8.5 集合元素的查找 21.8.6 多重集合 21.9 位集合 21.9.1 位集合的概念 21.9.2 位集合的構造 21.9.3 位集合的輸出 21.9.4 位元素的操作 21.9.5 位集合的賦值與轉換 21.9.6 位集合的尺寸 21.9.7 位集合的比較 21.9.8 位集合的位操作 第22章 泛型算法 22.1 指示器 22.1.1 指示器的獲取 22.1.2 指示器的數(shù)據(jù)類型 22.1.3 指示器的迭代 22.1.4 迭代的方向* 22.1.5 指示器的迭代類型 22.2 指示器適配器 22.2.1 反向指示器 22.2.2 插入型指示器 22.3 函數(shù)對象 22.4 算法 22.4.1 查找算法 22.4.2 排序與通用整序算法 22.4.3 刪除和替換算法 22.4.4 排列組合算法 22.4.5 算術算法 22.4.6 生成和異變算法 22.4.7 關系算法 22.4.8 集合算法 22.4.9 堆算法 第23章 C++實踐指南 23.1 提高代碼的可讀性 23.1.1 不要吝嗇注釋 23.1.2 不要吝嗇空白 23.1.3 愛惜標識符 23.1.4 合理使用操作符函數(shù) 23.1.5 合理使用別名 23.1.6 合理使用跳轉語句 23.2 編寫笨的程序 23.2.1 書寫正常的表達式 23.2.2 使用bool類型進行判斷 23.2.3 保證對象的初始化 23.2.4 盡量多寫一些if 23.2.5 不要再發(fā)明string類 23.2.6 使用標準C++ 23.3 合理使用內(nèi)存 23.3.1 C++中的內(nèi)存 23.3.2 內(nèi)存的非法訪問 23.3.3 內(nèi)存泄漏 23.3.4 內(nèi)存泄漏的檢測 23.3.5 CMemory State 23.3.6 智能指針(auto_ptr) 23.4 合理使用OOP 23.4.1 合理封裝對象 23.4.2 對象拷貝的產(chǎn)生 23.4.3 對象的初始化 23.4.4 對象的賦值與初始化 23.4.5 合理使用繼承與組合 23.4.6 合理使用多繼承 23.4.7 合理使用虛函數(shù)和虛基類 23.5 不要教條主義 第24章 綜合實踐:《西游記》游戲模擬 24.1 功能分析 24.1.1 游戲運行界面 24.1.2 游戲角色劃分 24.1.3 戰(zhàn)斗的形成 24.1.4 兵器的分配 24.2 設計思路 24.2.1 使用類和繼承完成角色的設計 24.2.2 使用文件流加載角色列表 24.2.3 使用虛函數(shù)實現(xiàn)角色的多態(tài) 24.2.4 使用操作符的重載 24.2.5 使用異常處理提高程序的魯棒性 24.2.6 使用RTTI獲取角色的類別 24.2.7 使用STL容器管理角色 24.2.8 使用STL容器管理兵器 24.2.9 使用泛型算法完成查找與排序 24.2.10 使用循環(huán)和判斷完成主控邏輯 24.3 實現(xiàn)詳解 24.3.1 Weapon 24.3.2 Actor 24.3.3 Monk 24.3.4 ActorPowersAccumulater 24.3.5 God 24.3.6 Monster 24.3.7 FollowerMonster 24.3.8 GameException 24.3.9 Game 24.3.10 main()函數(shù) 24.4 運行并觀察游戲 24.4.1 actors.ini 24.4.2 運行程序
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載