本書針對已有C程序設計基礎、學習C++面向?qū)ο蟪绦蛟O計的讀者。本書分為12章,第1章介紹面向?qū)ο蟪绦蛟O計的思想和基本概念;第2章綜述C++的發(fā)展歷程及新特性;第3~6章介紹類、對象、函數(shù)、常量、重載的概念及使用方法;第7、8章詳細講解類的組合、繼承、多態(tài)及模板問題;第9~11章詳細介紹輸入流/輸出流、異常處理及Visual C++ 2019開發(fā)環(huán)境;第12章給出一個Visual Studio環(huán)境下的C++綜合實例。本書內(nèi)容由淺入深,采用案例教學的方法,力求將復雜的概念用簡潔淺顯的語言進行講解,并且用實例對方法進行說明。書中還配有大量的習題。本書配有電子課件等教學資源,請登錄華信教育資源網(wǎng)www.hxedu.com.cn,注冊后免費下載。本書還配有慕課,請登錄智慧樹網(wǎng)站www.zhihuishu.com,搜索“面向?qū)ο蟪绦蛟O計”或掃描前言中的課程二維碼。
王曉帆,西安電子科技大學計算機應用專業(yè)博士研究生,F(xiàn)任職于西安理工大學計算機科學與工程學院,副教授。專業(yè)方向智能信息處理、人工智能。參加編寫《C++面向?qū)ο蟪绦蛟O計》。參與陜西高等教育教學改革研究重點項目,2019年獲陜西省教學成果二等獎一項。
目 錄
第1章 面向?qū)ο蠓椒▽W 1
1.1 面向?qū)ο蠓椒▽W的發(fā)展 1
1.2 面向?qū)ο蠓椒▽W的概述 2
1.2.1 面向?qū)ο蠓治?2
1.2.2 面向?qū)ο笤O計 3
1.2.3 面向?qū)ο髮崿F(xiàn) 3
1.3 面向?qū)ο蟪绦蛟O計的特性 3
1.3.1 抽象 4
1.3.2 封裝 4
1.3.3 繼承 5
1.3.4 多態(tài) 5
1.4 面向?qū)ο蟪绦蛟O計的術(shù)語 6
1.5 面向?qū)ο蟪绦蛟O計語言 7
1.5.1 C++ 7
1.5.2 Java 8
1.5.3 C# 9
1.5.4 Python 10
小結(jié) 11
習題1 11
第2章 C++概述 12
2.1 C++發(fā)展歷程與特點 12
2.2 C++程序 13
2.2.1 C++程序的格式與構(gòu)成 13
2.2.2 C++程序的編譯與執(zhí)行 15
2.3 從C到C++ 16
2.4 C++的一些新特性 18
2.4.1 注釋 18
2.4.2 新的數(shù)據(jù)類型 19
2.4.3 靈活的變量說明 19
2.4.4 作用域運算符 19
2.4.5 命名空間 20
2.4.6 新的輸入/輸出 21
2.4.7 頭文件 23
2.4.8 引用 24
2.5 Visual C++ 2019開發(fā)環(huán)境簡介 28
小結(jié) 30
習題2 30
第3章 類與對象 32
3.1 類的定義 32
3.1.1 類定義格式 32
3.1.2 成員函數(shù)的定義 34
3.1.3 類的作用域 34
3.2 對象的定義與使用 35
3.2.1 對象的定義 35
3.2.2 對象的使用 36
3.2.3 對象的賦值 38
3.2.4 對象的生命周期 39
3.3 構(gòu)造函數(shù)和析構(gòu)函數(shù) 42
3.3.1 構(gòu)造函數(shù) 42
3.3.2 析構(gòu)函數(shù) 44
3.4 內(nèi)存的動態(tài)分配 47
3.4.1 運算符new 47
3.4.2 運算符delete 48
3.5 對象數(shù)組和對象指針 49
3.5.1 對象數(shù)組 49
3.5.2 對象指針 51
3.5.3 自引用指針this 52
小結(jié) 54
習題3 54
第4章 函數(shù) 56
4.1 函數(shù)參數(shù)的傳遞機制 56
4.1.1 使用對象作為函數(shù)參數(shù) 56
4.1.2 使用對象指針作為函數(shù)參數(shù) 57
4.1.3 使用對象引用作為函數(shù)參數(shù) 58
4.1.4 三種傳遞方式比較 59
4.2 內(nèi)聯(lián)函數(shù) 59
4.3 函數(shù)重載 60
4.3.1 非成員函數(shù)重載 60
4.3.2 成員函數(shù)重載 62
4.4 函數(shù)的默認參數(shù)值 63
4.5 友元 65
4.5.1 友元函數(shù) 65
4.2.2 友元類 69
4.6 靜態(tài)成員 70
4.6.1 靜態(tài)數(shù)據(jù)成員 71
4.6.2 靜態(tài)成員函數(shù) 73
4.6.3 靜態(tài)對象 76
4.7 應用實例 77
小結(jié) 83
習題4 84
第5章 常量 88
5.1 const的最初動機 88
5.1.1 由define引發(fā)的問題 88
5.1.2 const的使用方法 88
5.2 const與指針 89
5.2.1 指向常量的指針 90
5.2.2 常指針 90
5.3 const與引用 91
5.4 const與函數(shù) 91
5.4.1 const類型的參數(shù) 91
5.4.2 const類型的返回值 92
5.4.3 const在傳遞地址中的應用 93
5.5 const與類 94
5.5.1 類內(nèi)const局部常量 94
5.5.2 常對象與常成員函數(shù) 95
5.6 拷貝構(gòu)造函數(shù) 97
小結(jié) 101
習題5 102
第6章 運算符重載 103
6.1 運算符重載的基本概念 103
6.2 成員函數(shù)重載運算符 103
6.2.1 重載單目運算符 104
6.2.2 重載雙目運算符 105
6.2.3 重載++、--運算符 107
6.2.4 重載賦值運算符 110
6.2.5 重載下標運算符 113
6.2.6 重載函數(shù)調(diào)用運算符 115
6.3 友元函數(shù)重載運算符 115
6.4 成員函數(shù)與友元函數(shù)重載運算符的
比較 119
6.5 類型轉(zhuǎn)換 121
6.5.1 系統(tǒng)預定義類型之間的
轉(zhuǎn)換 121
6.5.2 用構(gòu)造函數(shù)實現(xiàn)類型轉(zhuǎn)換 121
6.5.3 用運算符轉(zhuǎn)換函數(shù)實現(xiàn)類型
轉(zhuǎn)換 124
小結(jié) 127
習題6 128
第7章 組合、繼承與多態(tài) 130
7.1 組合 130
7.2 繼承 131
7.3 繼承與組合 133
7.4 繼承與組合中的構(gòu)造和析構(gòu) 136
7.4.1 成員對象初始化 136
7.4.2 構(gòu)造和析構(gòu)順序 136
7.5 名字覆蓋 140
7.6 虛函數(shù) 141
7.6.1 靜態(tài)綁定與動態(tài)綁定 142
7.6.2 虛函數(shù)的定義 142
7.6.3 虛析構(gòu)函數(shù) 144
7.7 純虛函數(shù)和抽象基類 144
7.8 多重繼承 146
7.8.1 多繼承語法 147
7.8.2 虛基類 148
7.8.3 最終派生類 149
7.8.4 多繼承的構(gòu)造順序 150
小結(jié) 152
習題7 152
第8章 模板 156
8.1 模板的概念 156
8.2 函數(shù)模板與模板函數(shù) 156
8.3 類模板與模板類 160
8.4 應用實例 164
小結(jié) 171
習題8 171
第9章 輸入流/輸出流 173
9.1 C++流類庫簡介 173
9.2 輸入流/輸出流格式 174
9.2.1 基本輸出流 174
9.2.2 基本輸入流 176
9.2.3 格式化輸入/輸出 177
9.2.4 其他輸入/輸出函數(shù) 183
9.3 用戶自定義類型的輸入/輸出 185
9.3.1 重載輸出運算符 185
9.3.2 重載輸入運算符 186
9.4 文件輸入/輸出 188
9.4.1 順序訪問文件 188
9.4.2 隨機訪問文件 192
9.5 應用實例 193
小結(jié) 198
習題9 198
第10章 異常處理 201
10.1 異常處理概述 201
10.2 拋出異常 201
10.3 異常捕獲 202
10.3.1 異常處理語法 202
10.3.2 異常接口聲明 204
10.3.3 捕獲所有異常 204
10.3.4 未捕獲異常的處理 204
10.4 構(gòu)造函數(shù)、析構(gòu)函數(shù)與異常處理 205
10.5 異常匹配 207
10.6 標準異常及層次結(jié)構(gòu) 208
小結(jié) 208
習題10 208
第11章 Visual C++ 2019開發(fā)環(huán)境 209
11.1 Visual C++ 2019概述 209
11.1.1 Visual Studio 2019 209
11.1.2 Visual C++ 2019 210
11.2 Visual C++ 2019環(huán)境 210
11.2.1 Visual C++ 2019操作界面 210
11.2.2 項目 212
11.2.3 調(diào)試環(huán)境 213
11.3 Windows編程 214
11.3.1 Windows常用數(shù)據(jù)類型 215
11.3.2 消息與事件 215
11.3.3 窗口消息示例 217
11.4 MFC類庫 219
11.5 MFC編程實例 222
小結(jié) 225
習題11 225
第12章 綜合實例 226
12.1 系統(tǒng)分析與設計 226
12.1.1 系統(tǒng)功能分析 226
12.1.2 系統(tǒng)功能類模型 226
12.1.3 系統(tǒng)功能流程 227
12.2 設計實現(xiàn) 228
12.2.1 系統(tǒng)程序框架生成 228
12.2.2 建立圖元類 230
12.2.3 界面控制 233
12.2.4 繪制圖元——線段 235
12.2.5 繪制圖元——矩形 240
12.2.6 繪制圖元——橢圓 243
12.2.7 繪制圖元——文字 246
12.2.8 繪制圖元——折線/多邊形 248
12.2.9 圖元文件存取 251
小結(jié) 260
習題12 260
參考文獻 261