本書作者長期從事高級語言程序設計的教學活動,在認真分析了初學者學習C++語言的困難及認知規(guī)律的基礎上,參閱了國內(nèi)外數(shù)十種C++教材,設計了易于學習的教學內(nèi)容體系。本書從過程型程序設計入手,深入淺出地介紹了C++語言的語法規(guī)則,并著重講解了面向?qū)ο蟪绦蛟O計的思想和關鍵技術。在體系結(jié)構上力求重點突出,內(nèi)容全面但不瑣碎,講解中注重理論結(jié)合實際,通過典型例題對語法規(guī)則、編程思想進行詳盡的解釋和分析,有助于讀者對知識點的理解和掌握。
本書共13章,分別是C++基礎、基本數(shù)據(jù)類型與運算符、程序控制、函數(shù)、數(shù)組、指針與引用、自定義數(shù)據(jù)類型、類(I)、類(II)、運算符重載、繼承與派生、虛函數(shù)與多態(tài)性、C++輸入/輸出流。每章附有應用實例,通過具體的實例展示本章知識點在實際中的應用;每章的小結(jié),對本章主要內(nèi)容做歸納總結(jié);每章最后還配有相關的習題,以便讀者練習和自查。
本書是學習C++的入門教程,起點低,無須C語言的基礎,可以作為高等院校電子信息類專業(yè)程序設計基礎的教材,也可作為有興趣學習C++的非計算機專業(yè)學生的輔助教材,同時適合自學。
作為最流行的面向?qū)ο蟪绦蛟O計語言之一,C++既支持過程化程序設計,也支持面向?qū)ο蟪绦蛟O計。從操作系統(tǒng)、設備控制到數(shù)據(jù)庫、網(wǎng)絡、數(shù)字媒體等眾多的系統(tǒng)軟件和應用軟件開發(fā)領域都能看到它的身影。
為了幫助讀者更好地學習C++程序設計,本書作者結(jié)合多年的C++教學實踐和軟件開發(fā)經(jīng)驗,從零編程基礎入手,全面、系統(tǒng)地介紹了C++語言的相關知識,并輔以大量的程序?qū)嵗?br>本書具有如下特色:
1.詳略得當,主次分明
C++中包含的內(nèi)容較多,由于篇幅所限不可能面面俱到,必須有所取舍。書中對于非重點或較復雜的內(nèi)容略講,如數(shù)組部分重點是一維和二維數(shù)組,三維以上數(shù)組只介紹概念。
2.講解由淺入深,循序漸進
本書的編排采用循序漸進的方式,內(nèi)容從易到難,講解由淺入深,適合各個層次的讀者學習。
3.寫作細致,以讀者為出發(fā)點
本書的內(nèi)容編排、概念表述、語法講解、實例展示,以及源代碼注釋等都很細致,問題講解清晰明了,盡量為讀者掃清學習中的障礙。
4.貫穿大量的開發(fā)實例和技巧
本書精選重點,強化主要概念,在講解知識點時貫穿了大量的典型實例和開發(fā)技巧,以例題釋含義,力求讓讀者獲得真正實用的知識。
5.配套資源豐富
為方便教學和自學,本書配套有“C++程序設計習題與上機指導”以及教學PPT、例題源代碼等,力求幫助讀者通過具體實踐掌握C++的編程方法。
本書閱讀建議:
1)建議沒有基礎的讀者,從前向后順次閱讀,盡量不要跳躍。
2)書中的實例和習題要親自上機動手實踐,學習效果更好。
3)課后習題不僅要給出代碼,最好能上機調(diào)試運行,以加強和鞏固對知識點的理解和掌握。
本書由劉厚泉提出編寫計劃和結(jié)構安排,其中劉厚泉編寫第1、2章,李政偉編寫第3、4章,葛欣編寫第5、6章,李政偉、劉佰龍編寫第7章,薛猛編寫第8、9章,席景科、趙瑩編寫第10、11章,徐東紅、謝紅俠編寫第12、13章,最后由葛欣統(tǒng)稿。
本書的編寫參考了大量的同類書籍。為此,我們向有關的作者和譯者表示衷心的感謝。
由于C++程序設計涉及的內(nèi)容非常豐富,限于編者的水平,書中個別地方難免有疏漏,敬請讀者批評指正,如對本書有任何建議或意見,敬請來信bookserviceofcpp@126.com。
編者
目 錄
前言
第1章 C++基礎1
1.1 程序設計語言簡介1
1.1.1 程序設計語言的發(fā)展概況1
1.1.2 如何學好程序設計1
1.2 C++語言的特點與程序結(jié)構2
1.2.1 C++語言的特點2
1.2.2 簡單的C++程序示例2
1.2.3 C++程序的結(jié)構5
1.3 過程型程序設計6
1.3.1 過程型程序設計的特點6
1.3.2 程序設計流程圖6
1.4 面向?qū)ο蟪绦蛟O計7
1.4.1 面向?qū)ο蟪绦蛟O計的特點7
1.4.2 如何進行面向?qū)ο蟪绦蛟O計8
1.5 程序設計環(huán)境8
1.5.1 程序集成開發(fā)環(huán)境的功能8
1.5.2 下載與安裝9
1.5.3 程序編輯與運行10
1.5.4 編譯與運行11
1.5.5 單步調(diào)試12
1.6 小結(jié)13
習題 14
第2章 基本數(shù)據(jù)類型與運算符17
2.1 基本數(shù)據(jù)類型17
2.1.1 數(shù)據(jù)類型的作用17
2.1.2 常用的C++數(shù)據(jù)類型17
2.2 常量18
2.2.1 常量的特點18
2.2.2 數(shù)值常量的表示18
2.2.3 字符常量19
2.3 變量21
2.3.1 變量的概念21
2.3.2 變量的定義22
2.3.3 標識符的命名規(guī)則22
2.3.4 變量的初始化與賦值23
2.4 賦值與算術運算符24
2.4.1 賦值運算符與賦值運算表達式24
2.4.2 算術運算符24
2.4.3 自增與自減運算符25
2.5 邏輯運算符和關系運算符25
2.5.1 邏輯常量和邏輯變量25
2.5.2 邏輯運算符和邏輯表達式26
2.5.3 關系運算符和關系表達式27
2.6 其他運算符28
2.6.1 逗號運算符28
2.6.2 復合賦值運算符29
2.6.3 sizeof( )運算符29
2.7 運算符的優(yōu)先級和結(jié)合性29
2.8 數(shù)據(jù)類型的轉(zhuǎn)換30
2.8.1 隱式轉(zhuǎn)換30
2.8.2 顯式轉(zhuǎn)換32
2.9 小結(jié)32
習題 32
第3章 程序控制36
3.1 順序結(jié)構36
3.2 選擇結(jié)構36
3.2.1 if語句37
3.2.2 嵌套if語句39
3.2.3 條件運算符? :的替代41
3.2.4 switch語句42
3.3 循環(huán)結(jié)構45
3.3.1 while語句45
3.3.2 do-while語句46
3.3.3 for語句47
3.3.4 循環(huán)嵌套50
3.4 跳轉(zhuǎn)結(jié)構50
3.4.1 break語句51
3.4.2 continue語句52
3.4.3 goto語句53
3.4.4 return語句53
3.5 應用實例53
3.6 小結(jié)58
習題 59
第4章 函數(shù)61
4.1 模塊化程序設計61
4.1.1 函數(shù)的概念61
4.1.2 模塊化程序設計引例61
4.1.3 函數(shù)的分類62
4.2 函數(shù)定義與聲明63
4.2.1 函數(shù)的定義63
4.2.2 函數(shù)聲明與函數(shù)原型64
4.3 函數(shù)調(diào)用65
4.3.1 函數(shù)調(diào)用的概念65
4.3.2 函數(shù)的傳值調(diào)用67
4.4 為形參指定默認值68
4.5 函數(shù)重載69
4.6 函數(shù)模板71
4.7 嵌套調(diào)用73
4.8 遞歸函數(shù)74
4.9 變量的作用域與生存期77
4.10 變量的存儲類別79
4.10.1 自動變量80
4.10.2 寄存器變量80
4.10.3 用extern聲明全局變量80
4.10.4 靜態(tài)變量82
4.11 內(nèi)部函數(shù)和外部函數(shù)83
4.11.1 內(nèi)部函數(shù)84
4.11.2 外部函數(shù)84
4.12 預處理指令85
4.12.1 #include指令85
4.12.2 #def?ine指令85
4.12.3 #if、#else、#endif、#ifdef、
#ifndef指令86
4.13 應用實例87
4.14 小結(jié)90
習題 90
第5章 數(shù)組93
5.1 一維數(shù)組的定義與初始化93
5.1.1 一維數(shù)組的定義93
5.1.2 一維數(shù)組的初始化94
5.2 一維數(shù)組的使用94
5.3 一維數(shù)組與函數(shù)96
5.4 二維數(shù)組99
5.4.1 二維數(shù)組的定義99
5.4.2 二維數(shù)組的初始化100
5.4.3 二維數(shù)組的使用100
5.5 字符數(shù)組103
5.5.1 字符數(shù)組的定義103
5.5.2 字符數(shù)組的初始化103
5.5.3 字符數(shù)組的使用104
5.5.4 字符串常用函數(shù)106
5.6 string類型109
5.6.1 字符串變量的定義與初始化109
5.6.2 字符串變量的使用109
5.6.3 字符串數(shù)組110
5.7 應用實例111
5.8 小結(jié)117
習題 117
第6章 指針與引用119
6.1 指針的定義與初始化119
6.1.1 指針的定義119
6.1.2 指針的初始化120
6.2 指針的使用121
6.2.1 指針運算符121
6.2.2 指針變量的運算122
6.3 指針與數(shù)組124
6.3.1 指針與一維數(shù)組124
6.3.2 指針與二維數(shù)組127
6.4 指針與字符串130
6.5 指針與函數(shù)132
6.5.1 指針作為函數(shù)參數(shù)132
6.5.2 指針作為函數(shù)返回值137
6.6 引用138
6.6.1 引用的定義138
6.6.2 引用的使用139
6.7 應用實例141
6.8 小結(jié)145
習題 146
第7章 自定義數(shù)據(jù)類型148
7.1 結(jié)構體類型148
7.1.1 結(jié)構體類型概述148
7.1.2 結(jié)構體變量的初始化149
7.1.3 結(jié)構體變量成員的引用150
7.1.4 結(jié)構體與指針150
7.2 結(jié)構體的使用151
7.2.1 結(jié)構體與函數(shù)151
7.2.2 結(jié)構體與數(shù)組153
7.3 單向鏈表156
7.3.1 new和delete運算符156
7.3.2 單向鏈表的定義157
7.3.3 單向鏈表的操作158
7.4 共用體類型164
7.5 枚舉類型164
7.6 類型定義typedef165
7.7 小結(jié)166
習題 166
第8章 類(Ⅰ)169
8.1 類的定義169
8.1.1 結(jié)構體和類169
8.1.2 基本概念171
8.1.3 類的定義172
8.1.4 成員函數(shù)的定義175
8.1.5 內(nèi)聯(lián)成員函數(shù)178
8.2 對象179
8.2.1 對象的定義179
8.2.2 成員訪問180
8.3 構造函數(shù)181
8.3.1 構造函數(shù)的定義181
8.3.2 子對象與構造函數(shù)186
8.3.3 復制構造函數(shù)188
8.4 析構函數(shù)191
8.4.1 析構函數(shù)的定義191
8.4.