本書緊密結(jié)合C++語言的新標準,以C++語言為工具講述面向?qū)ο蟪绦蛟O(shè)計方法。全書分為兩個部分:第一部分介紹C++語言基礎(chǔ)內(nèi)容及結(jié)構(gòu)化程序設(shè)計方法,包括基本類型、表達式、語句、函數(shù)、數(shù)組、指針等;第二部分介紹面向?qū)ο蟪绦蛟O(shè)計方法及C++語言中支持面向?qū)ο蟪绦蛟O(shè)計的主要機制,包括類、繼承、多態(tài)、模板、命名空間、異常處理、標準庫及泛型算法等。書中每章都包括豐富的代碼和習題,供讀者分析和練習。
本書既可作為計算機專業(yè)本科生程序設(shè)計課程的入門教材,也可以作為相關(guān)專業(yè)高年級學生面向?qū)ο蟪绦蛟O(shè)計的教材,還可供軟件開發(fā)人員參考。
本書適合作為高等院!癈++語言程序設(shè)計”課程的教堂用書,還可作為C++語言的自學或教學參考書。
(1)根據(jù)C++的最新標準編寫。(2)示例簡單實用、短小精悍且貫穿全書。(3)融入軟件工程思想。(4)詮釋經(jīng)典實例,本土化展示。
目 錄
第1章 程序設(shè)計與C++語言入門 1
1.1 程序及相關(guān)概念 1
1.1.1 計算機與用戶(人) 1
1.1.2 算法 2
1.1.3 程序 3
1.2 程序設(shè)計 3 目 錄
第1章 程序設(shè)計與C++語言入門 1
1.1 程序及相關(guān)概念 1
1.1.1 計算機與用戶(人) 1
1.1.2 算法 2
1.1.3 程序 3
1.2 程序設(shè)計 3
1.2.1 程序設(shè)計的基本概念 3
1.2.2 程序設(shè)計過程 4
1.2.3 程序設(shè)計方法 4
1.3 程序設(shè)計語言 7
1.3.1 機器語言 8
1.3.2 匯編語言 8
1.3.3 高級語言 8
1.3.4 編譯型語言與解釋型語言 8
1.3.5 C++語言 9
1.4 C++程序的結(jié)構(gòu) 9
1.4.1 注釋 9
1.4.2 預處理指示 9
1.4.3 以函數(shù)為單位的程序結(jié)構(gòu) 10
1.4.4 以類為單位的程序結(jié)構(gòu) 11
1.5 C++程序的實現(xiàn)過程 13
習題 14
第2章 內(nèi)置數(shù)據(jù)類型與基本輸入輸出 15
2.1 數(shù)據(jù)類型概述 15
2.1.1 數(shù)據(jù)類型的基本概念 15
2.1.2 C++語言類型系統(tǒng)的基本特點 15
2.2 標識符概述 16
2.2.1 C++語言中的基本記號 16
2.2.2 標識符 17
2.3 常量和變量 18
2.3.1 變量和變量的聲明 18
2.3.2 常量和常量的聲明 19
2.4 內(nèi)置數(shù)據(jù)類型 20
2.4.1 內(nèi)置數(shù)據(jù)類型概述 20
2.4.2 字符類型常量和變量 21
2.4.3 整數(shù)類型常量和變量 22
2.4.4 浮點類型常量和變量 23
2.4.5 布爾類型常量和變量 23
2.4.6 字符串類型常量和變量 24
2.5 操作符與表達式 24
2.5.1 操作符與表達式的基本概念 24
2.5.2 各種操作符和表達式詳解 26
2.6 類型之間的關(guān)系 29
2.6.1 隱式類型轉(zhuǎn)換 30
2.6.2 顯式(強制)類型轉(zhuǎn)換 30
2.7 標準庫的使用和簡單的輸入輸出 31
2.7.1 輸出 31
2.7.2 輸入 31
2.8 應用舉例 32
習題 32
第3章 語句與基本控制結(jié)構(gòu) 34
3.1 語句及分類 34
3.1.1 聲明語句 34
3.1.2 表達式語句 35
3.1.3 轉(zhuǎn)移語句 35
3.1.4 塊語句 36
3.1.5 空語句 37
3.2 選擇結(jié)構(gòu) 37
3.2.1 三種基本控制結(jié)構(gòu) 37
3.2.2 if語句 38
3.2.3 switch語句 40
3.3 循環(huán)結(jié)構(gòu) 41
3.3.1 while語句 42
3.3.2 do-while語句 43
3.3.3 for語句 43
3.3.4 循環(huán)中的break語句 44
3.3.5 continue語句 45
3.4 應用舉例 46
習題 48
第4章 函數(shù) 51
4.1 概述 51
4.2 函數(shù)定義與函數(shù)原型 53
4.2.1 函數(shù)定義 53
4.2.2 函數(shù)原型 54
4.3 函數(shù)調(diào)用與參數(shù)傳遞 55
4.3.1 函數(shù)調(diào)用 55
4.3.2 參數(shù)傳遞 57
4.4 標識符的作用域 62
4.4.1 作用域的基本概念 62
4.4.2 作用域的具體規(guī)則 63
4.4.3 變量的聲明與定義 64
4.4.4 名字空間 65
4.5 變量的生命期 66
4.6 預處理指示 69
4.6.1 文件包含 69
4.6.2 宏定義 69
4.6.3 條件編譯 70
4.7 標準庫函數(shù) 70
4.8 函數(shù)的接口設(shè)計和注釋 71
4.8.1 前置條件和后置條件 71
4.8.2 函數(shù)的注釋 71
4.8.3 函數(shù)的接口與實現(xiàn) 71
4.8.4 函數(shù)接口的設(shè)計 72
4.9 遞歸 73
4.9.1 什么是遞歸 73
4.9.2 遞歸的實現(xiàn) 74
4.9.3 漢諾塔問題 75
4.10 應用舉例 76
習題 77
第5章 枚舉、結(jié)構(gòu)與類 79
5.1 簡單數(shù)據(jù)類型與構(gòu)造式數(shù)據(jù)類型 79
5.2 枚舉類型 79
5.3 結(jié)構(gòu)類型 81
5.3.1 結(jié)構(gòu)類型的定義及其變量的聲明和使用 81
5.3.2 結(jié)構(gòu)變量的整體操作 83
5.3.3 層次結(jié)構(gòu) 84
5.3.4 匿名結(jié)構(gòu)類型 85
5.4 抽象、封裝與信息隱藏 85
5.4.1 抽象 85
5.4.2 數(shù)據(jù)封裝與隱藏 86
5.5 類與對象 89
5.5.1 類 89
5.5.2 對象的創(chuàng)建 94
5.5.3 對象的初始化 94
5.6 關(guān)于面向?qū)ο蟪绦蛟O(shè)計的若干基本問題 98
5.6.1 面向過程與面向?qū)ο蟆?8
5.6.2 術(shù)語 102
5.7 應用舉例 102
習題 105
第6章 數(shù)組與指針 107
6.1 數(shù)組類型 107
6.1.1 一維數(shù)組 107
6.1.2 二維數(shù)組 113
6.2 指針類型 120
6.2.1 基本概念 120
6.2.2 指針常量與指針變量 121
6.2.3 指針的運用 124
6.3 指針類型與數(shù)組 128
6.3.1 通過指針引用數(shù)組元素 128
6.3.2 數(shù)組作函數(shù)參數(shù)的進一步討論 131
6.3.3 動態(tài)分配內(nèi)存 133
6.3.4 二維數(shù)組與指針 136
6.4 main函數(shù)的形參 138
6.5 指向結(jié)構(gòu)變量的指針 139
6.6 對象指針 140
6.6.1 基本概念 140
6.6.2 對象的動態(tài)創(chuàng)建和撤銷 141
6.6.3 對象的復制 142
6.7 函數(shù)指針 143
6.8 應用舉例 144
習題 149
第7章 字符串 151
7.1 C風格字符串 151
7.1.1 字符串常量 151
7.1.2 字符數(shù)組 151
7.2 C字符串操作 153
7.2.1 獲得字符串長度 153
7.2.2 C字符串的復制 153
7.2.3 C字符串的比較 154
7.2.4 C字符串的連接 154
7.2.5 C字符串的類型轉(zhuǎn)換 155
7.2.6 處理單個字符 156
7.3 string對象字符串 156
7.3.1 string對象的聲明、初始化與賦值 157
7.3.2 string字符串的輸入和輸出 157
7.3.3 string字符串的長度 158
7.3.4 string字符串的比較 158
7.3.5 string字符串的子串 158
7.3.6 string字符串的連接 159
7.3.7 string對象轉(zhuǎn)換成C字符串 159
7.4 應用舉例 160
習題 161
第8章 繼承與組合 164
8.1 繼承的概念 164
8.2 C++中的繼承 165
8.2.1 基本概念 165
8.2.2 繼承實例 167
8.2.3 派生類中繼承成員函數(shù)的重定義 172
8.2.4 繼承層次中的構(gòu)造函數(shù)和析構(gòu)函數(shù) 172
8.3 組合 176
8.3.1 組合的語法和圖形表示 176
8.3.2 組合與構(gòu)造函數(shù)和析構(gòu)函數(shù) 177
8.3.3 組合的實例 178
8.4 繼承與組合的比較 182
8.5 多重繼承與重復繼承 182
8.5.1 多重繼承 182
8.5.2 多重繼承的構(gòu)造函數(shù) 185
8.5.3 多重繼承中存在的問題:名字沖突 186
8.5.4 重復繼承 187
8.6 應用舉例 189
習題 201
第9章 重載 205
9.1 函數(shù)重載 205
9.1.1 什么是函數(shù)重載 205
9.1.2 為什么要使用函數(shù)重載 209
9.1.3 使用函數(shù)重載時需要注意的問題 209
9.2 復制構(gòu)造函數(shù) 213
9.2.1 復制構(gòu)造函數(shù)的語法形式 213
9.2.2 復制構(gòu)造函數(shù)的使用場合 213
9.3 操作符重載 224
9.3.1 C++操作符的函數(shù)特性 224
9.3.2 操作符重載的規(guī)則 224
9.3.3 類成員操作符重載 225
9.3.4 友元操作符重載 229
9.4 應用舉例 232
習題 238
第10章 I/O流與文件 240
10.1 概述 240
10.1.1 何為I/O 240
10.1.2 應用程序、操作系統(tǒng)與I/O 240
10.1.3 標準I/O流cin和cout 241
10.1.4 文件I/O流 242
10.2 二進制文件I/O 245
10.2.1 文本文件I/O Vs.二進制文件I/O 245
10.2.2 二進制文件I/O 245
10.3 應用舉例 248
習題 251
第11章 多態(tài)性與虛函數(shù) 252
11.1 綁定方式與多態(tài)性 252
11.1.1 基本概念 252
11.1.2 多態(tài)性的作用 253
11.2 虛函數(shù) 254
11.2.1 虛函數(shù)舉例 254
11.2.2 使用虛函數(shù)的特定版本 256
11.2.3 虛析構(gòu)函數(shù) 257
11.3 純虛函數(shù)和抽象類 258
11.3.1 純虛函數(shù) 258
11.3.2 抽象類 259
11.4 應用舉例 259
習題 269
第12章 異常處理 271
12.1 異常處理概述 271
12.2 C++語言中的異常處理 272
12.2.1 throw語句 272
12.2.2 try塊與異常的捕獲及處理 273
12.2.3 標準庫異常類 285
12.2.4 異常說明(exception specification) 286
12.3 應用舉例 287
習題 298
第13章 模板 300
13.1 泛型編程概述 300
13.2 函數(shù)模板 300
13.2.1 函數(shù)模板的定義 301
13.2.2 函數(shù)模板的實例化 301
13.2.3 函數(shù)模板與重載 303
13.3 類模板 305
13.3.1 類模板的定義 306
13.3.2 類模板的實例化 309
13.3.3 模板編譯與類模板的實現(xiàn) 310
13.4 非類型模板形參 313
13.4.1 函數(shù)模板的非類型形參 313
13.4.2 類模板的非類型形參 313
13.5 應用舉例 314
習題 326
第14章 標準模板庫 328
14.1 概述 328
14.2 迭代器 329
14.3 容器 330
14.3.1 順序容器 330
14.3.2 關(guān)聯(lián)容器 341
14.3.3 容器適配器 348
14.4 泛型算法 351
14.4.1 算法簡介 351
14.4.2 算法舉例 354
14.5 應用舉例 356
習題 364
附錄A C++保留字表 366
附錄B 標準ASCII代碼表 367
附錄C 常用數(shù)學函數(shù) 368
附錄D C++標準庫頭文件 369
附錄E 標準庫泛型算法簡介 370
附錄F 主要術(shù)語英漢對照表 376
參考文獻 378