介紹了C++程序的運(yùn)行方式、基本數(shù)據(jù)類型、復(fù)合數(shù)據(jù)類型、循環(huán)和關(guān)系表達(dá)式、分支語(yǔ)句和邏輯運(yùn)算符、函數(shù)重載和函數(shù)模板、內(nèi)存模型和名稱空間、類的設(shè)計(jì)和使用、多態(tài)、虛函數(shù)、動(dòng)態(tài)內(nèi)存分配、繼承、代碼重用、友元、異常處理技術(shù)、string類和標(biāo)準(zhǔn)模板庫(kù)、輸入/輸出、C++11新增功能等內(nèi)容。
本書(shū)循序漸進(jìn)地介紹了C++程序設(shè)計(jì)的相關(guān)概念、方法。內(nèi)容上突出工程特色,以工程教育為理念,圍繞培養(yǎng)應(yīng)用創(chuàng)新型工程人才這一目標(biāo),著重學(xué)生的獨(dú)立研究能力、動(dòng)手能力和解決實(shí)際問(wèn)題能力的培養(yǎng),將測(cè)控技術(shù)與儀器專業(yè)工程人才培養(yǎng)模式和教學(xué)內(nèi)容的改革成果體現(xiàn)在教材中,通過(guò)科學(xué)規(guī)范的工程人才教材建設(shè)促進(jìn)專業(yè)建設(shè)和工程人才培養(yǎng)質(zhì)量的提高。
全書(shū)共12章。第1章介紹了進(jìn)行C++語(yǔ)言程序設(shè)計(jì)的預(yù)備知識(shí),包括數(shù)制、數(shù)據(jù)的表示方法,介紹了C++語(yǔ)言開(kāi)發(fā)工具;第2章介紹了C++語(yǔ)言程序設(shè)計(jì)中的數(shù)據(jù)類型與表達(dá)式;第3章介紹了基于過(guò)程的程序設(shè)計(jì)方法,主要包括輸入/輸出流、關(guān)系運(yùn)算與邏輯運(yùn)算、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)等內(nèi)容;第4章介紹了函數(shù)與預(yù)處理方法,介紹了常見(jiàn)的函數(shù)形式與用法;第5章介紹了數(shù)組的概念、創(chuàng)建方法及使用方法;第6章介紹了指針的概念,并對(duì)指針的應(yīng)用進(jìn)行詳細(xì)解析;第7章介紹了自定義數(shù)據(jù)類型,包括結(jié)構(gòu)體類型、鏈表、共用體等內(nèi)容;第8章介紹了類,這是面向?qū)ο缶幊讨凶罨镜母拍,詳?xì)介紹了類的定義及使用方法、構(gòu)造函數(shù)與析構(gòu)函數(shù)及對(duì)象的使用方法;第9章介紹了運(yùn)算符重載的定義、方法、規(guī)則等內(nèi)容;第10章介紹了繼承和派生的概念及工作方式;第11章介紹了多態(tài)性的概念、虛函數(shù)的定義與使用方法;第12章介紹了輸入/輸出流的常用函數(shù)及使用方法。
本書(shū)第1、8章由徐耀松執(zhí)筆;第2、3、5、9、10章由郭磊執(zhí)筆;第4、6、7章由尹玉萍執(zhí)筆;第11章由王丹丹、屠乃威、馬玉芳、謝國(guó)民共同執(zhí)筆;第12章由郭磊和徐耀松共同執(zhí)筆。全書(shū)的寫(xiě)作思路由付華教授提出,由付華和徐耀松統(tǒng)稿。此外,李猛、任仁、陶艷風(fēng)、代巍、湯月、司南楠、陳東、謝鴻、郭玉雯、于田、孟繁東、曹坦坦等也參加了本書(shū)的編寫(xiě)。在此,向?qū)Ρ緯?shū)的完成給予了熱情幫助的同行們表示感謝。
由于作者的水平有限,加上時(shí)間倉(cāng)促,書(shū)中的錯(cuò)誤和不妥之處,敬請(qǐng)讀者批評(píng)指正。
徐耀松(1979.2-),河北滄州人,博士后,副教授,遼寧省優(yōu)秀青年骨干教師。畢業(yè)于天津大學(xué)精密測(cè)試技術(shù)與儀器國(guó)家重點(diǎn)實(shí)驗(yàn)室。先后獲得遼寧省科技進(jìn)步獎(jiǎng)二等獎(jiǎng)、中國(guó)煤炭工業(yè)協(xié)會(huì)科學(xué)技術(shù)二等獎(jiǎng)、國(guó)家安全生產(chǎn)總局第三屆安全生產(chǎn)科技成果三等獎(jiǎng)、阜新市科技進(jìn)步一等獎(jiǎng)、遼寧省普通高等教育本科教學(xué)成果獎(jiǎng)獲獎(jiǎng)三等獎(jiǎng)等省部級(jí)科技獎(jiǎng)勵(lì)。在《傳感技術(shù)學(xué)報(bào)》、《納米技術(shù)與精密工程》、《計(jì)算機(jī)工程》等國(guó)內(nèi)外期刊發(fā)表論文二十余篇,EI檢索3篇。申報(bào)獲得國(guó)家專利8項(xiàng)。主持參與遼寧省教育廳基金、國(guó)家自然科學(xué)基金以及企業(yè)項(xiàng)目多項(xiàng)。主要研究方向:煤礦瓦斯災(zāi)害前兆信息的采集、分析、特征提取和災(zāi)害預(yù)測(cè);聲源信號(hào)時(shí)延估計(jì)與定位方法研究;工業(yè)遠(yuǎn)程監(jiān)控系統(tǒng)開(kāi)發(fā);嵌入式系統(tǒng)設(shè)計(jì)。
第1章 預(yù)備知識(shí) (1)
1.1 C++簡(jiǎn)介 (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++開(kāi)發(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 符號(hào)常量 (17)
2.3 變量 (18)
2.3.1 變量名規(guī)則 (18)
2.3.2 定義變量 (18)
2.3.3 對(duì)變量賦初值 (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)先級(jí)與結(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 賦值過(guò)程中的類型轉(zhuǎn)換 (22)
2.6.3 復(fù)合賦值運(yùn)算符 (22)
2.7 逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式 (23)
2.8 強(qiáng)制類型轉(zhuǎn)換運(yùn)算符 (23)
思考與練習(xí) (24)
第3章 基于過(guò)程的程序設(shè)計(jì) (26)
3.1 基于過(guò)程的程序設(shè)計(jì)和算法 (26)
3.1.1 算法的概念 (26)
3.1.2 算法的表示 (27)
3.2 C++的程序結(jié)構(gòu)和C++語(yǔ)句 (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 編寫(xiě)順序結(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語(yǔ)句 (39)
3.6.1 if語(yǔ)句的形式 (39)
3.6.2 if語(yǔ)句的嵌套 (42)
3.6.3 條件運(yùn)算符和條件表達(dá)式 (43)
3.6.4 多分支選擇結(jié)構(gòu)與switch語(yǔ)句 (44)
3.7 循環(huán)結(jié)構(gòu)和循環(huán)語(yǔ)句 (46)
3.7.1 用while語(yǔ)句構(gòu)成循環(huán) (46)
3.7.2 用do…while語(yǔ)句構(gòu)成循環(huán) (47)
3.7.3 用for語(yǔ)句構(gòu)成循環(huán) (49)
3.7.4 循環(huán)嵌套 (50)
3.7.5 break語(yǔ)句和continue語(yǔ)句 (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 定義無(wú)參函數(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 變量的存儲(chǔ)類別 (79)
4.11.1 動(dòng)態(tài)存儲(chǔ)方式與靜態(tài)存儲(chǔ)方式 (79)
4.11.2 自動(dòng)變量 (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)庫(kù) (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 通過(guò)指針引用數(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 動(dòng)態(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章 類和對(duì)象 (159)
8.1 類 (160)
8.1.1 類的定義 (160)
8.1.2 類成員的可見(jiàn)性 (162)
8.1.3 類的數(shù)據(jù)成員 (164)
8.1.4 類的成員函數(shù) (165)
8.1.5 類與結(jié)構(gòu)的區(qū)別 (170)
8.2 對(duì)象 (170)
8.2.1 對(duì)象的創(chuàng)建 (170)
8.2.2 訪問(wèn)對(duì)象的成員 (171)
8.2.3 類與對(duì)象的關(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 對(duì)象數(shù)組 (182)
8.8 對(duì)象指針 (186)
8.8.1 對(duì)象指針和對(duì)象引用 (186)
8.8.2 對(duì)象指針和對(duì)象引用做函數(shù)參數(shù) (188)
8.9 共用數(shù)據(jù)的保護(hù) (190)
8.9.1 常對(duì)象 (190)
8.9.2 常成員函數(shù) (191)
8.10 對(duì)象的動(dòng)態(tài)建立和釋放 (192)
8.11 對(duì)象的賦值和復(fù)制 (195)
8.11.1 對(duì)象的賦值 (195)
8.11.2 對(duì)象的復(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 問(wèn)題的提出 (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 派生類成員的訪問(wèn)屬性 (235)
10.4.1 公有繼承 (235)
10.4.2 私有繼承 (237)
10.4.3 保護(hù)成員和保護(hù)繼承 (238)
10.4.4 多級(jí)派生時(shí)的訪問(wèn)屬性 (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 有子對(duì)象的派生類構(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 多重繼承引起的二義性問(wèn)題 (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 基類對(duì)象的指針指向派生類對(duì)象 (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)庫(kù) (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 打開(kāi)和關(guān)閉文件 (299)
12.4.3 對(duì)ASCII文件操作 (301)
12.4.4 二進(jìn)制文件的讀寫(xiě)操作 (303)
12.4.5 隨機(jī)訪問(wèn)二進(jìn)制文件 (306)
12.5 字符串流 (307)
思考與練習(xí) (309)
附錄A ASCII碼表 (310)
參考文獻(xiàn) (314)