介紹了C++程序的運(yùn)行方式、基本數(shù)據(jù)類型、復(fù)合數(shù)據(jù)類型、循環(huán)和關(guān)系表達(dá)式、分支語句和邏輯運(yùn)算符、函數(shù)重載和函數(shù)模板、內(nèi)存模型和名稱空間、類的設(shè)計(jì)和使用、多態(tài)、虛函數(shù)、動態(tài)內(nèi)存分配、繼承、代碼重用、友元、異常處理技術(shù)、string類和標(biāo)準(zhǔn)模板庫、輸入/輸出、C++11新增功能等內(nèi)容。
本書循序漸進(jìn)地介紹了C++程序設(shè)計(jì)的相關(guān)概念、方法。內(nèi)容上突出工程特色,以工程教育為理念,圍繞培養(yǎng)應(yīng)用創(chuàng)新型工程人才這一目標(biāo),著重學(xué)生的獨(dú)立研究能力、動手能力和解決實(shí)際問題能力的培養(yǎng),將測控技術(shù)與儀器專業(yè)工程人才培養(yǎng)模式和教學(xué)內(nèi)容的改革成果體現(xiàn)在教材中,通過科學(xué)規(guī)范的工程人才教材建設(shè)促進(jìn)專業(yè)建設(shè)和工程人才培養(yǎng)質(zhì)量的提高。
全書共12章。第1章介紹了進(jìn)行C++語言程序設(shè)計(jì)的預(yù)備知識,包括數(shù)制、數(shù)據(jù)的表示方法,介紹了C++語言開發(fā)工具;第2章介紹了C++語言程序設(shè)計(jì)中的數(shù)據(jù)類型與表達(dá)式;第3章介紹了基于過程的程序設(shè)計(jì)方法,主要包括輸入/輸出流、關(guān)系運(yùn)算與邏輯運(yùn)算、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)等內(nèi)容;第4章介紹了函數(shù)與預(yù)處理方法,介紹了常見的函數(shù)形式與用法;第5章介紹了數(shù)組的概念、創(chuàng)建方法及使用方法;第6章介紹了指針的概念,并對指針的應(yīng)用進(jìn)行詳細(xì)解析;第7章介紹了自定義數(shù)據(jù)類型,包括結(jié)構(gòu)體類型、鏈表、共用體等內(nèi)容;第8章介紹了類,這是面向?qū)ο缶幊讨凶罨镜母拍,詳?xì)介紹了類的定義及使用方法、構(gòu)造函數(shù)與析構(gòu)函數(shù)及對象的使用方法;第9章介紹了運(yùn)算符重載的定義、方法、規(guī)則等內(nèi)容;第10章介紹了繼承和派生的概念及工作方式;第11章介紹了多態(tài)性的概念、虛函數(shù)的定義與使用方法;第12章介紹了輸入/輸出流的常用函數(shù)及使用方法。
本書第1、8章由徐耀松執(zhí)筆;第2、3、5、9、10章由郭磊執(zhí)筆;第4、6、7章由尹玉萍執(zhí)筆;第11章由王丹丹、屠乃威、馬玉芳、謝國民共同執(zhí)筆;第12章由郭磊和徐耀松共同執(zhí)筆。全書的寫作思路由付華教授提出,由付華和徐耀松統(tǒng)稿。此外,李猛、任仁、陶艷風(fēng)、代巍、湯月、司南楠、陳東、謝鴻、郭玉雯、于田、孟繁東、曹坦坦等也參加了本書的編寫。在此,向?qū)Ρ緯耐瓿山o予了熱情幫助的同行們表示感謝。
由于作者的水平有限,加上時(shí)間倉促,書中的錯誤和不妥之處,敬請讀者批評指正。
徐耀松(1979.2-),河北滄州人,博士后,副教授,遼寧省優(yōu)秀青年骨干教師。畢業(yè)于天津大學(xué)精密測試技術(shù)與儀器國家重點(diǎn)實(shí)驗(yàn)室。先后獲得遼寧省科技進(jìn)步獎二等獎、中國煤炭工業(yè)協(xié)會科學(xué)技術(shù)二等獎、國家安全生產(chǎn)總局第三屆安全生產(chǎn)科技成果三等獎、阜新市科技進(jìn)步一等獎、遼寧省普通高等教育本科教學(xué)成果獎獲獎三等獎等省部級科技獎勵。在《傳感技術(shù)學(xué)報(bào)》、《納米技術(shù)與精密工程》、《計(jì)算機(jī)工程》等國內(nèi)外期刊發(fā)表論文二十余篇,EI檢索3篇。申報(bào)獲得國家專利8項(xiàng)。主持參與遼寧省教育廳基金、國家自然科學(xué)基金以及企業(yè)項(xiàng)目多項(xiàng)。主要研究方向:煤礦瓦斯災(zāi)害前兆信息的采集、分析、特征提取和災(zāi)害預(yù)測;聲源信號時(shí)延估計(jì)與定位方法研究;工業(yè)遠(yuǎn)程監(jiān)控系統(tǒng)開發(fā);嵌入式系統(tǒng)設(shè)計(jì)。
第1章 預(yù)備知識 (1)
1.1 C++簡介 (1)
1.2 計(jì)算機(jī)數(shù)據(jù)表示方法 (2)
1.2.1 二進(jìn)制、八進(jìn)制、十六進(jìn)制 (3)
1.2.2 表示數(shù)據(jù)的字節(jié)和位 (5)
1.2.3 內(nèi)存 (5)
1.3 C++開發(fā)工具 (7)
第2章 C++的數(shù)據(jù)類型 (13)
2.1 C++的數(shù)據(jù)類型 (13)
2.2 常量 (14)
2.2.1 數(shù)值常量 (15)
2.2.2 字符常量和字符串常量 (15)
2.2.3 布爾常量 (17)
2.2.4 符號常量 (17)
2.3 變量 (18)
2.3.1 變量名規(guī)則 (18)
2.3.2 定義變量 (18)
2.3.3 對變量賦初值 (18)
2.3.4 常變量 (19)
2.4 C++的運(yùn)算符 (19)
2.5 算術(shù)運(yùn)算符與算術(shù)表達(dá)式 (20)
2.5.1 基本的算術(shù)運(yùn)算符 (20)
2.5.2 算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級與結(jié)合性 (20)
2.5.3 表達(dá)式中各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算 (21)
2.5.4 自增(++)和自減(--)運(yùn)算符 (21)
2.6 賦值運(yùn)算符和賦值表達(dá)式 (22)
2.6.1 賦值運(yùn)算符和賦值表達(dá)式概述 (22)
2.6.2 賦值過程中的類型轉(zhuǎn)換 (22)
2.6.3 復(fù)合賦值運(yùn)算符 (22)
2.7 逗號運(yùn)算符和逗號表達(dá)式 (23)
2.8 強(qiáng)制類型轉(zhuǎn)換運(yùn)算符 (23)
思考與練習(xí) (24)
第3章 基于過程的程序設(shè)計(jì) (26)
3.1 基于過程的程序設(shè)計(jì)和算法 (26)
3.1.1 算法的概念 (26)
3.1.2 算法的表示 (27)
3.2 C++的程序結(jié)構(gòu)和C++語句 (28)
3.3 C++的輸入與輸出 (29)
3.3.1 輸入流與輸出流的基本操作 (29)
3.3.2 在標(biāo)準(zhǔn)輸入流與輸出流中使用控制符 (31)
3.3.3 用getchar和putchar函數(shù)進(jìn)行字符的輸入和輸出 (33)
3.3.4 用scanf和printf函數(shù)進(jìn)行輸入和輸出 (34)
3.4 編寫順序結(jié)構(gòu)的程序 (35)
3.5 關(guān)系運(yùn)算和邏輯運(yùn)算 (36)
3.5.1 關(guān)系運(yùn)算和關(guān)系表達(dá)式 (36)
3.5.2 邏輯常量與邏輯變量 (37)
3.5.3 邏輯運(yùn)算和邏輯表達(dá)式 (38)
3.6 選擇結(jié)構(gòu)和if語句 (39)
3.6.1 if語句的形式 (39)
3.6.2 if語句的嵌套 (42)
3.6.3 條件運(yùn)算符和條件表達(dá)式 (43)
3.6.4 多分支選擇結(jié)構(gòu)與switch語句 (44)
3.7 循環(huán)結(jié)構(gòu)和循環(huán)語句 (46)
3.7.1 用while語句構(gòu)成循環(huán) (46)
3.7.2 用do…while語句構(gòu)成循環(huán) (47)
3.7.3 用for語句構(gòu)成循環(huán) (49)
3.7.4 循環(huán)嵌套 (50)
3.7.5 break語句和continue語句 (51)
3.7.6 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)舉例 (52)
思考與練習(xí) (55)
第4章 函數(shù)與預(yù)處理 (57)
4.1 函數(shù)概述 (57)
4.2 函數(shù)定義與函數(shù)聲明 (59)
4.2.1 定義無參函數(shù)的一般形式 (59)
4.2.2 定義有參函數(shù)的一般形式 (59)
4.2.3 函數(shù)聲明 (60)
4.3 函數(shù)的調(diào)用 (62)
4.3.1 函數(shù)調(diào)用的一般形式 (62)
4.3.2 函數(shù)調(diào)用的方式 (64)
4.3.3 函數(shù)的返回值 (64)
4.3.4 函數(shù)的值傳遞方式 (65)
4.4 內(nèi)置函數(shù) (66)
4.5 函數(shù)的重載 (67)
4.6 有默認(rèn)參數(shù)的函數(shù) (68)
4.7 函數(shù)模板 (69)
4.8 函數(shù)的嵌套調(diào)用 (70)
4.9 函數(shù)的遞歸調(diào)用 (71)
4.10 局部變量和全局變量 (76)
4.10.1 局部變量 (76)
4.10.2 全局變量 (77)
4.11 變量的存儲類別 (79)
4.11.1 動態(tài)存儲方式與靜態(tài)存儲方式 (79)
4.11.2 自動變量 (79)
4.11.3 用static聲明靜態(tài)局部變量 (80)
4.11.4 用register聲明寄存器變量 (81)
4.11.5 用extern聲明外部變量 (81)
4.12 內(nèi)部函數(shù)和外部函數(shù) (83)
4.12.1 內(nèi)部函數(shù) (83)
4.12.2 外部函數(shù) (84)
4.13 預(yù)處理命令 (85)
4.13.1 文件包含 (85)
4.13.2 條件編譯 (86)
4.13.3 宏定義 (86)
4.13.4 關(guān)于C++標(biāo)準(zhǔn)庫 (87)
思考與練習(xí) (88)
第5章 數(shù)組 (90)
5.1 數(shù)組的概念 (90)
5.2 一維數(shù)組的定義和引用 (91)
5.2.1 一維數(shù)組的定義 (91)
5.2.2 一維數(shù)組元素的引用 (92)
5.2.3 一維數(shù)組的初始化 (93)
5.3 二維數(shù)組的定義和引用 (97)
5.3.1 二維數(shù)組定義的一般格式 (97)
5.3.2 二維數(shù)組元素的引用 (97)
5.3.3 二維數(shù)組的初始化 (98)
5.3.4 二維數(shù)組應(yīng)用舉例 (98)
5.4 用數(shù)組名做函數(shù)參數(shù) (100)
5.5 字符數(shù)組 (102)
5.5.1 字符數(shù)組的定義和初始化 (103)
5.5.2 字符串處理函數(shù) (105)
5.5.3 字符數(shù)組應(yīng)用舉例 (107)
5.6 C++處理字符串的方法―字符串類與字符串變量 (108)
思考與練習(xí) (111)
第6章 指針 (112)
6.1 什么是指針 (112)
6.2 變量與指針 (113)
6.2.1 定義指針變量 (114)
6.2.2 指針變量賦值 (115)
6.2.3 引用指針變量 (116)
6.2.4 指針作為函數(shù)參數(shù) (116)
6.3 數(shù)組與指針 (119)
6.3.1 指向數(shù)組元素的指針變量 (119)
6.3.2 指針的運(yùn)算 (119)
6.3.3 通過指針引用數(shù)組元素 (120)
6.3.4 用數(shù)組名做函數(shù)參數(shù) (122)
6.4 字符串與指針 (126)
6.4.1 字符串的表示方法 (126)
6.4.2 字符指針做函數(shù)參數(shù) (128)
6.4.3 字符指針與字符數(shù)組的區(qū)別 (128)
6.5 函數(shù)與指針 (129)
6.5.1 函數(shù)的指針和指向函數(shù)的指針變量 (129)
6.5.2 返回指針值的函數(shù) (130)
6.6 指針數(shù)組和指向指針的指針 (130)
6.6.1 指針數(shù)組的概念 (130)
6.6.2 指向指針的指針 (131)
6.7 指針運(yùn)算小結(jié) (132)
6.8 引用 (133)
6.8.1 什么是變量的引用 (133)
6.8.2 引用作為函數(shù)參數(shù) (134)
思考與練習(xí) (135)
第7章 自定義數(shù)據(jù)類型 (137)
7.1 結(jié)構(gòu)體類型 (137)
7.1.1 結(jié)構(gòu)體類型的定義 (137)
7.1.2 結(jié)構(gòu)體變量的定義 (139)
7.1.3 結(jié)構(gòu)體變量的初始化 (141)
7.1.4 結(jié)構(gòu)體變量的引用 (142)
7.1.5 結(jié)構(gòu)體數(shù)組 (143)
7.1.6 指向結(jié)構(gòu)體變量的指針 (145)
7.1.7 結(jié)構(gòu)體數(shù)據(jù)做函數(shù)參數(shù) (148)
7.1.8 動態(tài)內(nèi)存分配 (150)
7.2 共用體 (152)
7.2.1 共用體的定義 (152)
7.2.2 共用體變量的引用 (153)
7.2.3 共用體的特點(diǎn) (154)
7.2.4 共用體變量的應(yīng)用 (154)
7.3 枚舉類型 (156)
7.4 用typedef定義類型 (156)
思考與練習(xí) (157)
第8章 類和對象 (159)
8.1 類 (160)
8.1.1 類的定義 (160)
8.1.2 類成員的可見性 (162)
8.1.3 類的數(shù)據(jù)成員 (164)
8.1.4 類的成員函數(shù) (165)
8.1.5 類與結(jié)構(gòu)的區(qū)別 (170)
8.2 對象 (170)
8.2.1 對象的創(chuàng)建 (170)
8.2.2 訪問對象的成員 (171)
8.2.3 類與對象的關(guān)系 (173)
8.3 this指針 (174)
8.4 構(gòu)造函數(shù) (175)
8.5 析構(gòu)函數(shù) (176)
8.6 調(diào)用構(gòu)造函數(shù)和析構(gòu)函數(shù)的順序 (179)
8.6.1 實(shí)例1 (179)
8.6.2 實(shí)例2 (181)
8.7 對象數(shù)組 (182)
8.8 對象指針 (186)
8.8.1 對象指針和對象引用 (186)
8.8.2 對象指針和對象引用做函數(shù)參數(shù) (188)
8.9 共用數(shù)據(jù)的保護(hù) (190)
8.9.1 常對象 (190)
8.9.2 常成員函數(shù) (191)
8.10 對象的動態(tài)建立和釋放 (192)
8.11 對象的賦值和復(fù)制 (195)
8.11.1 對象的賦值 (195)
8.11.2 對象的復(fù)制 (197)
8.12 靜態(tài)成員 (201)
8.12.1 靜態(tài)數(shù)據(jù)成員 (201)
8.12.2 靜態(tài)函數(shù)成員 (202)
8.13 友元 (203)
8.13.1 問題的提出 (203)
8.13.2 友元函數(shù) (204)
8.13.3 友元類 (205)
8.14 類模板 (206)
思考與練習(xí) (212)
第9章 運(yùn)算符重載 (214)
9.1 什么是運(yùn)算符重載 (214)
9.2 運(yùn)算符重載的方法 (215)
9.3 C++運(yùn)算符重載的規(guī)則 (218)
9.4 運(yùn)算符重載函數(shù)作為類成員函數(shù)和友元函數(shù) (218)
9.5 重載雙目運(yùn)算符 (220)
9.6 重載單目運(yùn)算符 (222)
9.7 重載流插入運(yùn)算符和流提取運(yùn)算符 (225)
9.8 不同類型數(shù)據(jù)間的轉(zhuǎn)換 (227)
思考與練習(xí) (229)
第10章 繼承與派生 (230)
10.1 繼承與派生的概念 (231)
10.2 派生類的聲明方式 (232)
10.3 派生類的構(gòu)成 (233)
10.4 派生類成員的訪問屬性 (235)
10.4.1 公有繼承 (235)
10.4.2 私有繼承 (237)
10.4.3 保護(hù)成員和保護(hù)繼承 (238)
10.4.4 多級派生時(shí)的訪問屬性 (240)
10.5 派生類的構(gòu)造函數(shù)和析構(gòu)函數(shù) (243)
10.5.1 基類構(gòu)造函數(shù)不包括參數(shù) (243)
10.5.2 基類構(gòu)造函數(shù)包括參數(shù) (244)
10.5.3 有子對象的派生類構(gòu)造函數(shù) (246)
10.5.4 多層派生時(shí)的構(gòu)造函數(shù) (248)
10.6 多重繼承 (251)
10.6.1 聲明多重繼承 (251)
10.6.2 多重繼承派生類的構(gòu)造函數(shù) (253)
10.6.3 多重繼承引起的二義性問題 (255)
10.6.4 虛基類 (258)
10.7 基類與派生類的轉(zhuǎn)換 (261)
10.8 繼承與組合 (264)
思考與練習(xí) (265)
第11章 多態(tài)性與虛函數(shù) (267)
11.1 多態(tài)性的概念 (267)
11.2 基類對象的指針指向派生類對象 (271)
11.3 虛函數(shù) (272)
11.3.1 虛函數(shù)的定義 (272)
11.3.2 虛函數(shù)的使用方法 (274)
11.3.3 虛函數(shù)與實(shí)函數(shù)的區(qū)別 (275)
11.3.4 在構(gòu)造函數(shù)和析構(gòu)函數(shù)中調(diào)用虛函數(shù) (278)
11.3.5 虛析構(gòu)函數(shù) (279)
11.4 純虛函數(shù)與抽象類 (282)
11.4.1 純虛函數(shù) (282)
11.4.2 抽象類 (284)
思考與練習(xí) (285)
第12章 輸入/輸出流 (288)
12.1 C++的輸入/輸出 (288)
12.1.1 輸入/輸出的含義 (288)
12.1.2 流與標(biāo)準(zhǔn)庫 (289)
12.2 標(biāo)準(zhǔn)輸出流 (290)
12.2.1 cout、cerr和clog流 (290)
12.2.2 格式輸出 (292)
12.2.3 用流成員函數(shù)put輸出字符串 (295)
12.3 標(biāo)準(zhǔn)輸入流 (296)
12.3.1 cin流 (296)
12.3.2 用于字符輸入的流成員函數(shù) (297)
12.4 文件操作與文件流 (299)
12.4.1 文件流 (299)
12.4.2 打開和關(guān)閉文件 (299)
12.4.3 對ASCII文件操作 (301)
12.4.4 二進(jìn)制文件的讀寫操作 (303)
12.4.5 隨機(jī)訪問二進(jìn)制文件 (306)
12.5 字符串流 (307)
思考與練習(xí) (309)
附錄A ASCII碼表 (310)
參考文獻(xiàn) (314)