本書針對已有C程序設(shè)計基礎(chǔ)、學(xué)習(xí)C++面向?qū)ο蟪绦蛟O(shè)計的讀者。本書分為12章,第1章介紹面向?qū)ο蟪绦蛟O(shè)計的思想和基本概念;第2章綜述C++的發(fā)展歷程及新特性;第3~6章介紹類、對象、函數(shù)、常量、重載的概念及使用方法;第7、8章詳細(xì)講解類的組合、繼承、多態(tài)及模板問題;第9~11章詳細(xì)介紹輸入流/輸出流、異常處理及Visual C++ 2019開發(fā)環(huán)境;第12章給出一個Visual Studio環(huán)境下的C++綜合實例。本書內(nèi)容由淺入深,采用案例教學(xué)的方法,力求將復(fù)雜的概念用簡潔淺顯的語言進(jìn)行講解,并且用實例對方法進(jìn)行說明。書中還配有大量的習(xí)題。本書配有電子課件等教學(xué)資源,請登錄華信教育資源網(wǎng)www.hxedu.com.cn,注冊后免費(fèi)下載。本書還配有慕課,請登錄智慧樹網(wǎng)站www.zhihuishu.com,搜索“面向?qū)ο蟪绦蛟O(shè)計”或掃描前言中的課程二維碼。
王曉帆,西安電子科技大學(xué)計算機(jī)應(yīng)用專業(yè)博士研究生,F(xiàn)任職于西安理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院,副教授。專業(yè)方向智能信息處理、人工智能。參加編寫《C++面向?qū)ο蟪绦蛟O(shè)計》。參與陜西高等教育教學(xué)改革研究重點項目,2019年獲陜西省教學(xué)成果二等獎一項。
目 錄
第1章 面向?qū)ο蠓椒▽W(xué) 1
1.1 面向?qū)ο蠓椒▽W(xué)的發(fā)展 1
1.2 面向?qū)ο蠓椒▽W(xué)的概述 2
1.2.1 面向?qū)ο蠓治?2
1.2.2 面向?qū)ο笤O(shè)計 3
1.2.3 面向?qū)ο髮崿F(xiàn) 3
1.3 面向?qū)ο蟪绦蛟O(shè)計的特性 3
1.3.1 抽象 4
1.3.2 封裝 4
1.3.3 繼承 5
1.3.4 多態(tài) 5
1.4 面向?qū)ο蟪绦蛟O(shè)計的術(shù)語 6
1.5 面向?qū)ο蟪绦蛟O(shè)計語言 7
1.5.1 C++ 7
1.5.2 Java 8
1.5.3 C# 9
1.5.4 Python 10
小結(jié) 11
習(xí)題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 作用域運(yùn)算符 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
習(xí)題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 運(yùn)算符new 47
3.4.2 運(yùn)算符delete 48
3.5 對象數(shù)組和對象指針 49
3.5.1 對象數(shù)組 49
3.5.2 對象指針 51
3.5.3 自引用指針this 52
小結(jié) 54
習(xí)題3 54
第4章 函數(shù) 56
4.1 函數(shù)參數(shù)的傳遞機(jī)制 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ù)的默認(rèn)參數(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 應(yīng)用實例 77
小結(jié) 83
習(xí)題4 84
第5章 常量 88
5.1 const的最初動機(jī) 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在傳遞地址中的應(yīng)用 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
習(xí)題5 102
第6章 運(yùn)算符重載 103
6.1 運(yùn)算符重載的基本概念 103
6.2 成員函數(shù)重載運(yùn)算符 103
6.2.1 重載單目運(yùn)算符 104
6.2.2 重載雙目運(yùn)算符 105
6.2.3 重載++、--運(yùn)算符 107
6.2.4 重載賦值運(yùn)算符 110
6.2.5 重載下標(biāo)運(yùn)算符 113
6.2.6 重載函數(shù)調(diào)用運(yùn)算符 115
6.3 友元函數(shù)重載運(yùn)算符 115
6.4 成員函數(shù)與友元函數(shù)重載運(yùn)算符的
比較 119
6.5 類型轉(zhuǎn)換 121
6.5.1 系統(tǒng)預(yù)定義類型之間的
轉(zhuǎn)換 121
6.5.2 用構(gòu)造函數(shù)實現(xiàn)類型轉(zhuǎn)換 121
6.5.3 用運(yùn)算符轉(zhuǎn)換函數(shù)實現(xiàn)類型
轉(zhuǎn)換 124
小結(jié) 127
習(xí)題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
習(xí)題7 152
第8章 模板 156
8.1 模板的概念 156
8.2 函數(shù)模板與模板函數(shù) 156
8.3 類模板與模板類 160
8.4 應(yīng)用實例 164
小結(jié) 171
習(xí)題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 重載輸出運(yùn)算符 185
9.3.2 重載輸入運(yùn)算符 186
9.4 文件輸入/輸出 188
9.4.1 順序訪問文件 188
9.4.2 隨機(jī)訪問文件 192
9.5 應(yīng)用實例 193
小結(jié) 198
習(xí)題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 標(biāo)準(zhǔn)異常及層次結(jié)構(gòu) 208
小結(jié) 208
習(xí)題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
習(xí)題11 225
第12章 綜合實例 226
12.1 系統(tǒng)分析與設(shè)計 226
12.1.1 系統(tǒng)功能分析 226
12.1.2 系統(tǒng)功能類模型 226
12.1.3 系統(tǒng)功能流程 227
12.2 設(shè)計實現(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
習(xí)題12 260
參考文獻(xiàn) 261