本書共12章,第1~2章介紹了有關C++的基礎概念,以及C++的數(shù)據(jù)類型和表達式;第3~4章敘述了C++的程序結構、流程控制語句和數(shù)組;第5~6章討論了函數(shù)的定義和相關調用,以及編譯預處理中的文件包含處理、宏定義與條件編譯;第7章講解了指針變量、指針數(shù)組等與指針相關的知識;第8章介紹了枚舉類型、結構體及鏈表的相關概念;第9~10章講述了類和對象,以及繼承和派生的知識點;第11~12章敘述了友元與運算符重載、流類體系與文件操作的基本知識。本書為江蘇省高等學校精品課程“C++程序設計”的配套教材,不僅配有豐富的例題、實驗和習題,還配有典型例題的微課視頻。本書可作為高等院校、高等職業(yè)院校計算機、電子信息、物聯(lián)網(wǎng)等相關專業(yè)的教材。
汪菊琴,女,1981年10月出生,無錫職業(yè)技術學院教師。在教學上鉆研多年,有豐富的課程教學經驗,主持并完成校級《C++程序設計》課程建設,主持省級在線開放課程1門,同時是國家精品在線開放課程《可視化程序設計》的主講教師。多次指導學生參加國家級、省級等比賽并獲獎,其中指導學生參加2019年全國技能大賽“移動互聯(lián)網(wǎng)應用軟件開發(fā)”賽項獲得一等獎。近年來發(fā)表期刊論文多篇,其中北大核心期刊論文2篇。
第1章 C++概述 1
1.1 C++的起源 1
1.2 C++的特點 2
1.3 C++程序的基本結構 2
1.4 C++上機操作 5
1.4.1 C++程序的開發(fā)步驟 5
1.4.2 C++程序的上機操作方法 6
本章小結 9
習題 9
第2章 數(shù)據(jù)類型和表達式 11
2.1 數(shù)據(jù)類型 11
2.2 常量和變量 13
2.2.1 常量 13
2.2.2 變量 16
2.3 運算符和表達式 17
2.3.1 算術運算符和算術表達式 17
2.3.2 賦值運算符和賦值表達式 19
2.3.3 自增/自減運算符 20
2.3.4 關系運算符和關系表達式 21
2.3.5 邏輯運算符和邏輯表達式 22
2.3.6 逗號運算符和逗號表達式 23
2.3.7 復合賦值運算符 24
2.3.8 數(shù)據(jù)類型長度運算符(sizeof運算符) 24
2.4 簡單的輸入和輸出 25
2.4.1 數(shù)據(jù)輸出cout 25
2.4.2 數(shù)據(jù)輸入cin 26
2.4.3 簡單的輸入/輸出格式控制 27
本章小結 28
習題 29
實驗 31
第3章 程序結構和流程控制語句 32
3.1 程序的三種基本結構和語句 32
3.1.1 程序的三種基本結構 32
3.1.2 C++程序的組成 34
3.1.3 C++程序的語句 34
3.2 分支語句 35
3.2.1 if語句 35
3.2.2 條件運算符和條件表達式 41
3.2.3 switch語句 41
3.3 循環(huán)語句 44
3.3.1 while語句 45
3.3.2 do…while語句 47
3.3.3 for語句 49
3.3.4 三種循環(huán)語句的比較 51
3.3.5 循環(huán)語句的嵌套 52
3.4 控制執(zhí)行順序的語句 53
3.4.1 break語句 53
3.4.2 continue語句 53
3.4.3 語句標號和goto語句 55
3.4.4 exit()函數(shù)和abort()函數(shù) 55
3.5 程序設計舉例 56
3.5.1 分支語句應用舉例 56
3.5.2 循環(huán)語句應用舉例 59
本章小結 64
習題 65
實驗A 68
實驗B 69
第4章 數(shù)組 70
4.1 數(shù)組的定義和使用 70
4.1.1 一維數(shù)組的定義和使用 70
4.1.2 二維數(shù)組的定義和使用 77
4.2 字符數(shù)組的定義和使用 81
4.2.1 字符串和字符數(shù)組 81
4.2.2 字符串處理函數(shù) 83
4.3 數(shù)組應用舉例 86
4.3.1 一維數(shù)組應用舉例 86
4.3.2 二維數(shù)組應用舉例 88
4.3.3 字符數(shù)組應用舉例 90
本章小結 92
習題 92
實驗A 95
實驗B 96
第5章 函數(shù) 98
5.1 函數(shù)的定義和調用 98
5.1.1 函數(shù)的概念 98
5.1.2 函數(shù)的定義 99
5.1.3 函數(shù)的調用 100
5.1.4 實參與形參的數(shù)據(jù)傳送 103
5.2 函數(shù)的嵌套調用和遞歸調用 104
5.2.1 函數(shù)的嵌套調用 104
5.2.2 函數(shù)的遞歸調用 105
5.3 數(shù)組作為函數(shù)參數(shù) 108
5.3.1 數(shù)組元素作為函數(shù)參數(shù) 108
5.3.2 數(shù)組名作為函數(shù)參數(shù) 109
5.4 變量的存儲類型 112
5.4.1 作用域 112
5.4.2 局部變量與全局變量 114
5.4.3 動態(tài)變量與靜態(tài)變量 115
5.4.4 存儲類型 116
5.5 內聯(lián)函數(shù) 121
5.6 具有默認參數(shù)值的函數(shù) 122
5.7 函數(shù)的重載 123
本章小結 124
習題 126
實驗 130
第6章 編譯預處理 132
6.1 文件包含處理 132
6.2 宏定義 135
6.2.1 不帶參數(shù)的宏定義 135
6.2.2 帶參數(shù)的宏定義 137
6.3 條件編譯 139
本章小結 142
習題 142
第7章 指針 144
7.1 指針與指針變量 144
7.1.1 指針的概念 144
7.1.2 指針變量的定義與引用 145
7.1.3 指針變量的運算 146
7.2 指針與數(shù)組 151
7.2.1 一維數(shù)組與指針 151
7.2.2 二維數(shù)組與指針 152
7.2.3 字符串與指針 156
7.3 指針變量與數(shù)組作為函數(shù)參數(shù) 158
7.3.1 指針變量作為函數(shù)參數(shù) 158
7.3.2 數(shù)組與指針作為函數(shù)參數(shù) 160
7.4 指針數(shù)組 162
7.5 指向一維數(shù)組的指針變量 164
7.6 返回指針值的函數(shù) 167
7.7 函數(shù)指針變量 168
7.8 new運算符和delete運算符 172
7.8.1 new運算符 172
7.8.2 delete運算符 173
7.8.3 使用new運算符和delete運算符應注意的事項 174
7.9 引用類型變量和const類型變量 174
7.9.1 引用類型變量的定義及使用 174
7.9.2 const類型變量 176
本章小結 178
習題 181
實驗A 184
實驗B 184
第8章 枚舉類型和結構體 186
8.1 枚舉類型的定義及應用 186
8.1.1 枚舉類型的定義 186
8.1.2 枚舉類型變量的定義 187
8.1.3 枚舉類型變量的引用 188
8.2 結構體的定義及應用 191
8.2.1 結構體的概念 191
8.2.2 結構體類型的定義 191
8.2.3 結構體變量的定義 192
8.2.4 結構體變量的引用 193
8.2.5 結構體變量與數(shù)組作為函數(shù)參數(shù) 195
8.3 鏈表 198
8.3.1 鏈表的概念 198
8.3.2 鏈表的基本操作 199
本章小結 207
習題 209
實驗A 210
實驗B 211
第9章 類和對象 212
9.1 概述 212
9.2 類與對象 213
9.2.1 類 213
9.2.2 對象 216
9.3 構造函數(shù) 219
9.3.1 構造函數(shù)的定義 219
9.3.2 用構造函數(shù)初始化對象的過程 221
9.3.3 默認構造函數(shù) 222
9.3.4 拷貝構造函數(shù) 223
9.3.5 用new運算符動態(tài)定義對象 224
9.4 析構函數(shù) 225
9.4.1 析構函數(shù)的定義 225
9.4.2 析構函數(shù)的調用 226
9.4.3 默認的析構函數(shù) 229
9.5 構造函數(shù)和對象成員 229
9.6 this指針 232
本章小結 233
習題 234
實驗 237
第10章 繼承和派生 238
10.1 繼承與派生 238
10.1.1 繼承與派生的基本概念 238
10.1.2 派生類的定義 240
10.1.3 派生類的構造函數(shù)與基類成員的初始化 242
10.2 沖突、支配規(guī)則和賦值兼容規(guī)則 246
10.2.1 沖突 246
10.2.2 支配規(guī)則 249
10.2.3 賦值兼容規(guī)則 250
10.2.4 基類和對象成員的幾點說明 250
10.3 虛基類 250
10.3.1 多重派生的基類拷貝 250
10.3.2 虛基類的定義和使用 252
10.4 靜態(tài)數(shù)據(jù)成員 253
本章小結 256
習題 257
實驗 259
第11章 友元與運算符重載 261
11.1 友元函數(shù) 261
11.1.1 定義普通函數(shù)為友元函數(shù) 261
11.1.2 友元注意事項 263
11.2 運算符重載 263
11.2.1 運算符重載的概念 263
11.2.2 二元運算符重載 263
11.2.3 一元運算符重載 268
11.2.4 字符串類運算符重載 273
11.3 多態(tài)性與虛函數(shù) 275
11.3.1 多態(tài)性技術 275
11.3.2 虛函數(shù) 276
11.3.3 純虛函數(shù) 278
11.4 類與對象的特性 280
本章小結 281
習題 282
實驗 284
第12章 流類體系與文件操作 285
12.1 流類體系 285
12.1.1 流 285
12.1.2 基本流類體系 286
12.1.3 標準輸入/輸出流 287
12.1.4 流的格式控制 288
12.1.5 數(shù)據(jù)輸入/輸出成員函數(shù) 293
12.2 文件操作 295
12.2.1 C++文件概述 295
12.2.2 C++的文件流類體系 295
12.2.3 文件的使用方法 296
12.2.4 文本文件的使用方法 299
本章小結 304
習題 305
實驗 306
附錄A C++中的關鍵字 308
附錄B 常用庫函數(shù) 310
附錄C ASCII碼表 314
附錄D 學時分配參考表 315
參考文獻 316