內容簡介
介紹了C++程式的運行方式、基本數據類型、複合數據類型、循環和關係表達式、分支語句和邏輯運算符、函式重載和函式模板、記憶體模型和名稱空間、類的設計和使用、多態、虛函式、動態記憶體分配、繼承、代碼重用、友元、異常處理技術、string類和標準模板庫、輸入/輸出、C++11新增功能等內容。
圖書目錄
第1章 預備知識 (1)
1.1 C++簡介 (1)
1.2 計算機數據表示方法 (2)
1.2.1 二進制、八進制、十六進制 (3)
1.2.2 表示數據的位元組和位 (5)
1.2.3 記憶體 (5)
1.3 C++開發工具 (7)
第2章 C++的數據類型 (13)
2.1 C++的數據類型 (13)
2.2 常量 (14)
2.2.1 數值常量 (15)
2.2.2 字元常量和字元串常量 (15)
2.2.3 布爾常量 (17)
2.2.4 符號常量 (17)
2.3 變數 (18)
2.3.1 變數名規則 (18)
2.3.2 定義變數 (18)
2.3.3 對變數賦初值 (18)
2.3.4 常變數 (19)懂霉擔
2.4 C++的運算符 (19)
2.5 算術運算符與算術表達式 (20)
2.5.1 基本的算術運算符 (20)
2.5.2 算術表達式和運算符的優先權與結合性 (20)
2.5.3 表達式中各類數值型數據間的鍵危員棗混合運算 (21)
2.5.4 自增(++)和自減(--)運算符 (21)
2.6 賦值運算符和賦值表達式 (22)
2.6.1 賦值運算符和賦值表達式概述 (22)
2.6.2 賦值過程中的類型轉換 (22)
2.6.3 複合賦值運算符 (22)
2.7 逗號運算符和逗號表達式 (23)
2.8 強制類型轉換運算符 (23)
思考與練習 (24)
第3章 基於過程的程式設計 (26)
3.1 基於過程的程式設計和算法 (26)
3.1.1 算法的概念 (26)
3.1.2 算法的表示 (27)
3.2 C++的程式結構和C++語句 (28)
3.3 C++的輸入與輸出 (29)
3.3.1 輸入流與輸出流的基本操作 (29)
3.3.2 在標準輸入流與輸出流中使用控制符 (31)
3.3.3 用辨凝getchar和putchar函式進行字元的輸入和輸出 (33)
3.3.4 用scanf和printf函式進行輸入和輸出 (34)
3.4 編寫順序結構的程式 (35)
3.5 關係運算和邏輯運算 (36)
3.5.1 關係運算和關係表達式 (36)
3.5.2 邏輯常量與邏輯變數 (37)
3.5.3 邏輯運算和邏輯表達式 (38)
3.6 選擇結構和if語句 (39)
3.6.1 if語句的形套料辣式 (39)
3.6.2 if語句的嵌套 (42)
3.6.3 條件運算符和條件表達式 (43)
3.6.4 多分支選朽設仔擇結構與switch語句 (44)
3.7 循環結構和循環語句 (46)
3.7.1 用while語句構成循環 (46)
3.7.2 用do…while語句構成循環 (47)
3.7.3 用for語句構成循環 (49)
3.7.4 循環嵌套 (50)
3.7.5 break語句和continue語句 (51)
3.7.6 循環結構程式設計舉例 (52)
思考與練習 (55)
第4章 函式與預處理 (57)
4.1 函式概述 (57)
4.2 函式定義與函式聲明 (59)
4.2.1 定義無參函式的一般形式 (59)
4.2.2 定義有參函式的一般形式 (59)
4.2.3 函式聲明 (60)
4.3 函式的調用 (62)
4.3.1 函式調用的一般形式 (62)
4.3.2 函式調用的方式 (64)
4.3.3 函式的返回值 (64)
4.3.4 函式的值傳遞方式 (65)
4.4 內置函式 (66)
4.5 函式的重載 (67)
4.6 有默認參數的函式 (68)
4.7 函式模板 (69)
4.8 函式的嵌套調用 (70)
4.9 函式的遞歸調用 (71)
4.10 局部變數和全局變數 (76)
4.10.1 局部變數 (76)
4.10.2 全局變數 (77)
4.11 變數的存儲類別 (79)
4.11.1 動態存儲方奔烏市奔式與靜態存儲方式 (79)凝船詢
4.11.2 自動變數 (79)
4.11.3 用static聲明靜態局部變數 (80)
4.11.4 用register聲明暫存器變數 (81)
4.11.5 用extern聲明外部變數 (81)
4.12 內部函式和外部函式 (83)
4.12.1 內部函式 (83)
4.12.2 外部函式 (84)
4.13 預處理命令 (85)
4.13.1 檔案包含 (85)
4.13.2 條件編譯 (86)
4.13.3 宏定義 (86)
4.13.4 關於C++標準庫 (87)
思考與練習 (88)
第5章 數組 (90)
5.1 數組的概念 (90)
5.2 一維數組的定義和引用 (91)
5.2.1 一維數組的定義 (91)
5.2.2 一維數組元素的引用 (92)
5.2.3 一維數組的初始化 (93)
5.3 二維數組的定義和引用 (97)
5.3.1 二維數組定義的一般格式 (97)
5.3.2 二維數組元素的引用 (97)
5.3.3 二維數組的初始化 (98)
5.3.4 二維數組套用舉例 (98)
5.4 用數組名做函式參數 (100)
5.5 字元數組 (102)
5.5.1 字元數組的定義和初始化 (103)
5.5.2 字元串處理函式 (105)
5.5.3 字元數組套用舉例 (107)
5.6 C++處理字元串的方法—字元串類與字元串變數 (108)
思考與練習 (111)
第6章 指針 (112)
6.1 什麼是指針 (112)
6.2 變數與指針 (113)
6.2.1 定義指針變數 (114)
6.2.2 指針變數賦值 (115)
6.2.3 引用指針變數 (116)
6.2.4 指針作為函式參數 (116)
6.3 數組與指針 (119)
6.3.1 指向數組元素的指針變數 (119)
6.3.2 指針的運算 (119)
6.3.3 通過指針引用數組元素 (120)
6.3.4 用數組名做函式參數 (122)
6.4 字元串與指針 (126)
6.4.1 字元串的表示方法 (126)
6.4.2 字元指針做函式參數 (128)
6.4.3 字元指針與字元數組的區別 (128)
6.5 函式與指針 (129)
6.5.1 函式的指針和指向函式的指針變數 (129)
6.5.2 返回指針值的函式 (130)
6.6 指針數組和指向指針的指針 (130)
6.6.1 指針數組的概念 (130)
6.6.2 指向指針的指針 (131)
6.7 指針運算小結 (132)
6.8 引用 (133)
6.8.1 什麼是變數的引用 (133)
6.8.2 引用作為函式參數 (134)
思考與練習 (135)
第7章 自定義數據類型 (137)
7.1 結構體類型 (137)
7.1.1 結構體類型的定義 (137)
7.1.2 結構體變數的定義 (139)
7.1.3 結構體變數的初始化 (141)
7.1.4 結構體變數的引用 (142)
7.1.5 結構體數組 (143)
7.1.6 指向結構體變數的指針 (145)
7.1.7 結構體數據做函式參數 (148)
7.1.8 動態記憶體分配 (150)
7.2 共用體 (152)
7.2.1 共用體的定義 (152)
7.2.2 共用體變數的引用 (153)
7.2.3 共用體的特點 (154)
7.2.4 共用體變數的套用 (154)
7.3 枚舉類型 (156)
7.4 用typedef定義類型 (156)
思考與練習 (157)
第8章 類和對象 (159)
8.1 類 (160)
8.1.1 類的定義 (160)
8.1.2 類成員的可見性 (162)
8.1.3 類的數據成員 (164)
8.1.4 類的成員函式 (165)
8.1.5 類與結構的區別 (170)
8.2 對象 (170)
8.2.1 對象的創建 (170)
8.2.2 訪問對象的成員 (171)
8.2.3 類與對象的關係 (173)
8.3 this指針 (174)
8.4 構造函式 (175)
8.5 析構函式 (176)
8.6 調用構造函式和析構函式的順序 (179)
8.6.1 實例1 (179)
8.6.2 實例2 (181)
8.7 對象數組 (182)
8.8 對象指針 (186)
8.8.1 對象指針和對象引用 (186)
8.8.2 對象指針和對象引用做函式參數 (188)
8.9 共用數據的保護 (190)
8.9.1 常對象 (190)
8.9.2 常成員函式 (191)
8.10 對象的動態建立和釋放 (192)
8.11 對象的賦值和複製 (195)
8.11.1 對象的賦值 (195)
8.11.2 對象的複製 (197)
8.12 靜態成員 (201)
8.12.1 靜態數據成員 (201)
8.12.2 靜態函式成員 (202)
8.13 友元 (203)
8.13.1 問題的提出 (203)
8.13.2 友元函式 (204)
8.13.3 友元類 (205)
8.14 類模板 (206)
思考與練習 (212)
第9章 運算符重載 (214)
9.1 什麼是運算符重載 (214)
9.2 運算符重載的方法 (215)
9.3 C++運算符重載的規則 (218)
9.4 運算符重載函式作為類成員函式和友元函式 (218)
9.5 重載雙目運算符 (220)
9.6 重載單目運算符 (222)
9.7 重載流插入運算符和流提取運算符 (225)
9.8 不同類型數據間的轉換 (227)
思考與練習 (229)
第10章 繼承與派生 (230)
10.1 繼承與派生的概念 (231)
10.2 派生類的聲明方式 (232)
10.3 派生類的構成 (233)
10.4 派生類成員的訪問屬性 (235)
10.4.1 公有繼承 (235)
10.4.2 私有繼承 (237)
10.4.3 保護成員和保護繼承 (238)
10.4.4 多級派生時的訪問屬性 (240)
10.5 派生類的構造函式和析構函式 (243)
10.5.1 基類構造函式不包括參數 (243)
10.5.2 基類構造函式包括參數 (244)
10.5.3 有子對象的派生類構造函式 (246)
10.5.4 多層派生時的構造函式 (248)
10.6 多重繼承 (251)
10.6.1 聲明多重繼承 (251)
10.6.2 多重繼承派生類的構造函式 (253)
10.6.3 多重繼承引起的二義性問題 (255)
10.6.4 虛基類 (258)
10.7 基類與派生類的轉換 (261)
10.8 繼承與組合 (264)
思考與練習 (265)
第11章 多態性與虛函式 (267)
11.1 多態性的概念 (267)
11.2 基類對象的指針指向派生類對象 (271)
11.3 虛函式 (272)
11.3.1 虛函式的定義 (272)
11.3.2 虛函式的使用方法 (274)
11.3.3 虛函式與實函式的區別 (275)
11.3.4 在構造函式和析構函式中調用虛函式 (278)
11.3.5 虛析構函式 (279)
11.4 純虛函式與抽象類 (282)
11.4.1 純虛函式 (282)
11.4.2 抽象類 (284)
思考與練習 (285)
第12章 輸入/輸出流 (288)
12.1 C++的輸入/輸出 (288)
12.1.1 輸入/輸出的含義 (288)
12.1.2 流與標準庫 (289)
12.2 標準輸出流
作者簡介
徐耀松(1979.2-),河北滄州人,博士後,副教授,遼寧省優秀青年骨幹教師。畢業於天津大學精密測試技術與儀器國家重點實驗室。先後獲得遼寧省科技進步獎二等獎、中國煤炭工業協會科學技術二等獎、國家安全生產總局第三屆安全生產科技成果三等獎、阜新市科技進步一等獎、遼寧省普通高等教育本科教學成果獎獲獎三等獎等省部級科技獎勵。在《感測技術學報》、《納米技術與精密工程》、《計算機工程》等國內外期刊發表論文二十餘篇,EI檢索3篇。申報獲得國家專利8項。主持參與遼寧省教育廳基金、國家自然科學基金以及企業項目多項。主要研究方向:煤礦瓦斯災害前兆信息的採集、分析、特徵提取和災害預測;聲源信號時延估計與定位方法研究;工業遠程監控系統開發;嵌入式系統設計。
3.3.4 用scanf和printf函式進行輸入和輸出 (34)
3.4 編寫順序結構的程式 (35)
3.5 關係運算和邏輯運算 (36)
3.5.1 關係運算和關係表達式 (36)
3.5.2 邏輯常量與邏輯變數 (37)
3.5.3 邏輯運算和邏輯表達式 (38)
3.6 選擇結構和if語句 (39)
3.6.1 if語句的形式 (39)
3.6.2 if語句的嵌套 (42)
3.6.3 條件運算符和條件表達式 (43)
3.6.4 多分支選擇結構與switch語句 (44)
3.7 循環結構和循環語句 (46)
3.7.1 用while語句構成循環 (46)
3.7.2 用do…while語句構成循環 (47)
3.7.3 用for語句構成循環 (49)
3.7.4 循環嵌套 (50)
3.7.5 break語句和continue語句 (51)
3.7.6 循環結構程式設計舉例 (52)
思考與練習 (55)
第4章 函式與預處理 (57)
4.1 函式概述 (57)
4.2 函式定義與函式聲明 (59)
4.2.1 定義無參函式的一般形式 (59)
4.2.2 定義有參函式的一般形式 (59)
4.2.3 函式聲明 (60)
4.3 函式的調用 (62)
4.3.1 函式調用的一般形式 (62)
4.3.2 函式調用的方式 (64)
4.3.3 函式的返回值 (64)
4.3.4 函式的值傳遞方式 (65)
4.4 內置函式 (66)
4.5 函式的重載 (67)
4.6 有默認參數的函式 (68)
4.7 函式模板 (69)
4.8 函式的嵌套調用 (70)
4.9 函式的遞歸調用 (71)
4.10 局部變數和全局變數 (76)
4.10.1 局部變數 (76)
4.10.2 全局變數 (77)
4.11 變數的存儲類別 (79)
4.11.1 動態存儲方式與靜態存儲方式 (79)
4.11.2 自動變數 (79)
4.11.3 用static聲明靜態局部變數 (80)
4.11.4 用register聲明暫存器變數 (81)
4.11.5 用extern聲明外部變數 (81)
4.12 內部函式和外部函式 (83)
4.12.1 內部函式 (83)
4.12.2 外部函式 (84)
4.13 預處理命令 (85)
4.13.1 檔案包含 (85)
4.13.2 條件編譯 (86)
4.13.3 宏定義 (86)
4.13.4 關於C++標準庫 (87)
思考與練習 (88)
第5章 數組 (90)
5.1 數組的概念 (90)
5.2 一維數組的定義和引用 (91)
5.2.1 一維數組的定義 (91)
5.2.2 一維數組元素的引用 (92)
5.2.3 一維數組的初始化 (93)
5.3 二維數組的定義和引用 (97)
5.3.1 二維數組定義的一般格式 (97)
5.3.2 二維數組元素的引用 (97)
5.3.3 二維數組的初始化 (98)
5.3.4 二維數組套用舉例 (98)
5.4 用數組名做函式參數 (100)
5.5 字元數組 (102)
5.5.1 字元數組的定義和初始化 (103)
5.5.2 字元串處理函式 (105)
5.5.3 字元數組套用舉例 (107)
5.6 C++處理字元串的方法—字元串類與字元串變數 (108)
思考與練習 (111)
第6章 指針 (112)
6.1 什麼是指針 (112)
6.2 變數與指針 (113)
6.2.1 定義指針變數 (114)
6.2.2 指針變數賦值 (115)
6.2.3 引用指針變數 (116)
6.2.4 指針作為函式參數 (116)
6.3 數組與指針 (119)
6.3.1 指向數組元素的指針變數 (119)
6.3.2 指針的運算 (119)
6.3.3 通過指針引用數組元素 (120)
6.3.4 用數組名做函式參數 (122)
6.4 字元串與指針 (126)
6.4.1 字元串的表示方法 (126)
6.4.2 字元指針做函式參數 (128)
6.4.3 字元指針與字元數組的區別 (128)
6.5 函式與指針 (129)
6.5.1 函式的指針和指向函式的指針變數 (129)
6.5.2 返回指針值的函式 (130)
6.6 指針數組和指向指針的指針 (130)
6.6.1 指針數組的概念 (130)
6.6.2 指向指針的指針 (131)
6.7 指針運算小結 (132)
6.8 引用 (133)
6.8.1 什麼是變數的引用 (133)
6.8.2 引用作為函式參數 (134)
思考與練習 (135)
第7章 自定義數據類型 (137)
7.1 結構體類型 (137)
7.1.1 結構體類型的定義 (137)
7.1.2 結構體變數的定義 (139)
7.1.3 結構體變數的初始化 (141)
7.1.4 結構體變數的引用 (142)
7.1.5 結構體數組 (143)
7.1.6 指向結構體變數的指針 (145)
7.1.7 結構體數據做函式參數 (148)
7.1.8 動態記憶體分配 (150)
7.2 共用體 (152)
7.2.1 共用體的定義 (152)
7.2.2 共用體變數的引用 (153)
7.2.3 共用體的特點 (154)
7.2.4 共用體變數的套用 (154)
7.3 枚舉類型 (156)
7.4 用typedef定義類型 (156)
思考與練習 (157)
第8章 類和對象 (159)
8.1 類 (160)
8.1.1 類的定義 (160)
8.1.2 類成員的可見性 (162)
8.1.3 類的數據成員 (164)
8.1.4 類的成員函式 (165)
8.1.5 類與結構的區別 (170)
8.2 對象 (170)
8.2.1 對象的創建 (170)
8.2.2 訪問對象的成員 (171)
8.2.3 類與對象的關係 (173)
8.3 this指針 (174)
8.4 構造函式 (175)
8.5 析構函式 (176)
8.6 調用構造函式和析構函式的順序 (179)
8.6.1 實例1 (179)
8.6.2 實例2 (181)
8.7 對象數組 (182)
8.8 對象指針 (186)
8.8.1 對象指針和對象引用 (186)
8.8.2 對象指針和對象引用做函式參數 (188)
8.9 共用數據的保護 (190)
8.9.1 常對象 (190)
8.9.2 常成員函式 (191)
8.10 對象的動態建立和釋放 (192)
8.11 對象的賦值和複製 (195)
8.11.1 對象的賦值 (195)
8.11.2 對象的複製 (197)
8.12 靜態成員 (201)
8.12.1 靜態數據成員 (201)
8.12.2 靜態函式成員 (202)
8.13 友元 (203)
8.13.1 問題的提出 (203)
8.13.2 友元函式 (204)
8.13.3 友元類 (205)
8.14 類模板 (206)
思考與練習 (212)
第9章 運算符重載 (214)
9.1 什麼是運算符重載 (214)
9.2 運算符重載的方法 (215)
9.3 C++運算符重載的規則 (218)
9.4 運算符重載函式作為類成員函式和友元函式 (218)
9.5 重載雙目運算符 (220)
9.6 重載單目運算符 (222)
9.7 重載流插入運算符和流提取運算符 (225)
9.8 不同類型數據間的轉換 (227)
思考與練習 (229)
第10章 繼承與派生 (230)
10.1 繼承與派生的概念 (231)
10.2 派生類的聲明方式 (232)
10.3 派生類的構成 (233)
10.4 派生類成員的訪問屬性 (235)
10.4.1 公有繼承 (235)
10.4.2 私有繼承 (237)
10.4.3 保護成員和保護繼承 (238)
10.4.4 多級派生時的訪問屬性 (240)
10.5 派生類的構造函式和析構函式 (243)
10.5.1 基類構造函式不包括參數 (243)
10.5.2 基類構造函式包括參數 (244)
10.5.3 有子對象的派生類構造函式 (246)
10.5.4 多層派生時的構造函式 (248)
10.6 多重繼承 (251)
10.6.1 聲明多重繼承 (251)
10.6.2 多重繼承派生類的構造函式 (253)
10.6.3 多重繼承引起的二義性問題 (255)
10.6.4 虛基類 (258)
10.7 基類與派生類的轉換 (261)
10.8 繼承與組合 (264)
思考與練習 (265)
第11章 多態性與虛函式 (267)
11.1 多態性的概念 (267)
11.2 基類對象的指針指向派生類對象 (271)
11.3 虛函式 (272)
11.3.1 虛函式的定義 (272)
11.3.2 虛函式的使用方法 (274)
11.3.3 虛函式與實函式的區別 (275)
11.3.4 在構造函式和析構函式中調用虛函式 (278)
11.3.5 虛析構函式 (279)
11.4 純虛函式與抽象類 (282)
11.4.1 純虛函式 (282)
11.4.2 抽象類 (284)
思考與練習 (285)
第12章 輸入/輸出流 (288)
12.1 C++的輸入/輸出 (288)
12.1.1 輸入/輸出的含義 (288)
12.1.2 流與標準庫 (289)
12.2 標準輸出流
作者簡介
徐耀松(1979.2-),河北滄州人,博士後,副教授,遼寧省優秀青年骨幹教師。畢業於天津大學精密測試技術與儀器國家重點實驗室。先後獲得遼寧省科技進步獎二等獎、中國煤炭工業協會科學技術二等獎、國家安全生產總局第三屆安全生產科技成果三等獎、阜新市科技進步一等獎、遼寧省普通高等教育本科教學成果獎獲獎三等獎等省部級科技獎勵。在《感測技術學報》、《納米技術與精密工程》、《計算機工程》等國內外期刊發表論文二十餘篇,EI檢索3篇。申報獲得國家專利8項。主持參與遼寧省教育廳基金、國家自然科學基金以及企業項目多項。主要研究方向:煤礦瓦斯災害前兆信息的採集、分析、特徵提取和災害預測;聲源信號時延估計與定位方法研究;工業遠程監控系統開發;嵌入式系統設計。