內容介紹 | |
![](http://img3m6.ddimg.cn/73/12/29139436-1_u_4.jpg)
開本:16開 紙張:膠版紙 包裝:平裝-膠訂 是否套裝:否 國際標準書號ISBN:9787302561088 叢書名:高等院校信息技術規劃教材 作者:周法國、高文超 出版社:清華大學出版社 出版時間:2020年10月 
"編輯推薦 u 取材新穎,實時性強。本書以C 11標準為指導,結合C 14和C 17,深入淺出地介紹了標準C 面向對像程序設計的相關知識。 u 重點突出,內容豐富。本書重點講解C 面向對像程序設計的特征、思想與方法,同時也兼顧C 非面向對像的特征及對C語言的擴展。 u 循序漸進,由淺入深。為了便於讀者學習,本書首先介紹了C 的發展史、程序設計的基本方法,從C 非面向對像方面的特征(包括對C語言的擴展)到C 面向對像程序設計,從泛型編程技術到標準模板庫;*後介紹C 的異常處理機制,通過層層深入的方式引領讀者進行C 面向對像程序設計的世界。 u 實例豐富,案例完整。每個知識點都通過簡單易懂的實例進行剖析,書中範例均在GCC 8.3.1下運行通過,凡是帶有main函數的程序都是完整的程序,可以直接在計算機上編譯運行。 內容簡介 面向對像編程(Object Oriented Programming,OOP,面向對像程序設計)是一種計算機編程架構,同樣也是一種程序設計方法學。世界上接近50%的程序員都采用C 作為軟件開發語言。本書從實際應用出發,繫統地介紹了C 程序設計的語法、面向對像程序設計的特征(封裝、繼承與多態)、泛型編程基礎(模板與標準模板庫)、異常處理機制,並配以詳實的案例示例。 作者簡介 周法國,男,博士,中國計算機學會會員,ACM會員,IEEE CS會員,1999年7月於山東大學計算數學及其應用軟件專業畢業,獲理學學士學位,2009年1月於北京科技大學計算機應用技術專業研究生畢業,獲工學博士學位,主要研究方向為數據庫、知識發現與智能繫統以及自然語言處理,在國內外期刊及國際會議上共發布學術論文20餘篇,其中被EI、ISTP檢索10多篇。參加國家863項目、國家重大儀器專項項目、國防科工局重點項目、國家質量檢驗檢疫總局科技計劃項目等多項課題的研究工作,負責國家科技支撐計劃課題子課題一項。 1999年7月——2003年8月在聊城大學計算機繫工作,主要講授高等數學、數值計算、C語言程序設計等課程 2009年3月至今在中國礦業大學(北京)計算機繫工作,主要講授大型實用數據庫(Oracle)、C/C 程序設計、離散數學、算法設計與分析等課程 2012年參與的項目《認知結構教學論的構造與實踐---國際視野中教學理論體繫的研究與實踐》獲北京市高等教育教學成果獎一等獎,個人排名第8 目錄 第1章 C 與面向對像程序設計概述1 1.1 面向過程與面向對像程序設計1 1.1.1 面向過程程序設計1 1.1.2 面向對像程序設計4 1.2 面向對像程序設計的主要特征5 1.2.1 封裝6 1.2.2 繼承6 1.2.3 多態7 1.3 程序設計語言的發展史7 1.3.1 機器語言7 1.3.2 彙編語言7 1.3.3 高級語言8 1.4 C 語言9 1.4.1 C 的產生9第1章 C 與面向對像程序設計概述1
1.1 面向過程與面向對像程序設計1
1.1.1 面向過程程序設計1
1.1.2 面向對像程序設計4
1.2 面向對像程序設計的主要特征5
1.2.1 封裝6
1.2.2 繼承6
1.2.3 多態7
1.3 程序設計語言的發展史7
1.3.1 機器語言7
1.3.2 彙編語言7
1.3.3 高級語言8
1.4 C 語言9
1.4.1 C 的產生9
1.4.2 C 的發展與標準化10
1.4.3 C 語言的特點11
1.4.4 C 程序結構12
1.4.5 標準C 程序設計14
1.5 小結15
第2章 數據與輸入輸出16
2.1 數據與數據類型16
2.1.1 C 的數據類型16
2.1.2 C 字面值常量18
2.2 C 數據的輸入輸出21
2.2.1 流的概念與標準輸入輸出流22
2.2.2 cin與數據輸入22
2.2.3 cout與數據輸出32
2.2.4 輸入輸出格式控制36
2.2.5 字符串數據的輸入與輸出42
2.3 文件流和文件操作43
2.3.1 文件和文件流43
2.3.2 文件讀寫44
2.4 小結46
第3章 C 基礎47
3.1 變量及運算47
3.1.1 變量定義及其初始化47
3.1.2 常量表達式和constexpr50
3.1.3 處理類型52
3.1.4 類型轉換54
3.2 指針55
3.2.1 指針的概念55
3.2.2 new和delete59
3.2.3 智能指針62
3.2.4 數組與指針68
3.3 引用70
3.3.1 左值引用70
3.3.2 右值引用74
3.4 類型轉換74
3.4.1 隱式類型轉換75
3.4.2 顯式類型轉換77
3.5 函數80
3.5.1 函數基礎80
3.5.2 參數傳遞83
3.5.3 默認實參90
3.5.4 函數返回值91
3.5.5 函數重載96
3.5.6 內聯函數99
3.5.7 constexpr函數100
3.6 命名空間101
3.6.1 命名空間的定義101
3.6.2 訪問命名空間成員104
3.7 小結106
第4章 類與對像107
4.1 struct與class107
4.1.1 聚合類107
4.1.2 C 對struct的擴展108
4.1.3 訪問權限109
4.1.4 類111
4.1.5 抽像與封裝112
4.2 類的成員114
4.2.1 數據成員114
4.2.2 成員函數115
4.2.3 嵌套類型118
4.3 類類型與對像120
4.3.1 類類型120
4.3.2 對像121
4.4 構造函數和析構函數125
4.4.1 構造函數和類內初始值125
4.4.2 默認構造函數126
4.4.3 重載構造函數與默認實參129
4.4.4 默認構造函數的作用131
4.4.5 構造函數與初始化列表132
4.4.6 委托構造函數135
4.4.7 構造函數與隱式類類型轉換136
4.4.8 析構函數138
4.5 對像的復制、賦值與移動140
4.5.1 復制構造函數141
4.5.2 復制賦值運算符144
4.5.3 移動構造函數和移動賦值運算符147
4.5.4 阻止復制152
4.6 類的其他訪問控制154
4.6.1 this指針154
4.6.2 成員指針155
4.6.3 158
4.7 靜態成員161
4.7.1 靜態數據成員161
4.7.2 靜態成員函數163
4.8 小結163
第5章 組合與繼承165
5.1 代碼重用165
5.2 組合166
5.2.1 組合的一般形式166
5.2.2 對像成員的初始化167
5.2.3 應用類的組合解決實際問題169
5.3 繼承170
5.3.1 繼承的實現171
5.3.2 公有繼承174
5.3.3 私有繼承176
5.3.4 保護繼承177
5.3.5 基類成員的訪問177
5.4 派生類對基類的擴展178
5.4.1 繼承與靜態成員178
5.4.2 與繼承178
5.4.3 改變基類成員在派生類中的訪問權限180
5.4.4 繼承中的類作用域180
5.4.5 名字衝突與繼承181
5.4.6 類型轉換與繼承182
5.4.7 派生類對基類成員的訪問184
5.5 派生類的構造函數和析構函數184
5.5.1 派生類構造函數185
5.5.2 派生類析構函數189
5.5.3 派生類的復制控制成員191
5.6 多繼承193
5.6.1 多繼承的實現193
5.6.2 多繼承方式下成員的二義性195
5.6.3 多繼承派生類的構造函數和析構函數195
5.6.4 多繼承派生類的復制和移動操作197
5.6.5 類型轉換與多個基類198
5.6.6 多繼承下的類作用域198
5.7 虛繼承199
5.7.1 虛基類200
5.7.2 虛繼承的一般形式201
5.7.3 虛基類成員的可見性201
5.7.4 構造函數與虛繼承202
5.8 小結206
第6章 多態207
6.1 多態概述207
6.1.1 多態的概念207
6.1.2 多態的實現208
6.1.3 多態的意義210
6.2 虛函數211
6.2.1 基類對像與派生類對像之間的關繫211
6.2.2 虛函數的引入與意義214
6.2.3 override和final說明符216
6.2.4 虛函數的特征218
6.2.5 虛函數與默認實參224
6.2.6 回避虛函數的機制225
6.2.7 虛函數的實現技術225
6.2.8 虛析構函數228
6.3 純虛函數和抽像類230
6.3.1 純虛函數230
6.3.2 抽像類231
6.3.3 應用抽像類實現多態的銀行賬戶管理繫統233
6.4 運行時類型識別237
6.4.1 dynamic_cast237
6.4.2 typeid241
6.5 小結244
第7章 運算符重載245
7.1 運算符重載基礎245
7.1.1 運算符重載的概念245
7.1.2 運算符重載的實現245
7.1.3 運算符重載的限制247
7.2 輸入輸出運算符的重載249
7.2.1 重載輸出運算符<<249
7.2.2 重載輸入運算符>>251
7.3 算術運算符和關繫運算符的重載252
7.3.1 算術運算符的重載252
7.3.2 相等運算符的重載252
7.3.3 關繫運算符的重載253
7.4 賦值運算符的重載254
7.4.1 復制賦值運算符的重載254
7.4.2 移動賦值運算符的重載255
7.4.3 基於列表初始化的賦值運算符的重載256
7.4.4 復合賦值運算符的重載256
7.5 下標運算符的重載257
7.6 自增和自減運算符的重載258
7.6.1 定義自增和自減前綴運算符258
7.6.2 區分前置和後置運算符259
7.7 成員訪問運算符的重載260
7.8 函數調用運算符的重載261
7.8.1 函數調用運算符重載的實現形式262
7.8.2 含有狀態的函數對像類262
7.8.3 lambda函數263
7.9 類型轉換運算符的重載266
7.9.1 用構造函數實現的隱式數據類型轉換266
7.9.2 類型轉換運算符267
7.9.3 類型轉換的二義性270
7.1 0小結274
第8章 模板與泛型編程276
8.1 模板概述276
8.1.1 模板的概念276
8.1.2 模板的實現技術277
8.2 函數模板278
8.2.1 函數模板的定義278
8.2.2 實例化模板參數280
8.2.3 模板類型參數280
8.2.4 非類型模板參數284
8.2.5 函數模板特化285
8.2.6 模板編譯286
8.3 類模板287
8.3.1 類模板的定義287
8.3.2 類模板的實例化288
8.3.3 類模板的成員函數289
8.3.4 類模板的使用290
8.3.5 類模板的靜態成員291
8.4 模板設計中的幾個獨特問題292
8.4.1 默認模板實參292
8.4.2 成員模板293
8.4.3 控制實例化295
8.4.4 可變參數函數模板297
8.5 模板實參推斷299
8.5.1 類型轉換與模板類型參數299
8.5.2 函數模板顯式實參301
8.5.3 函數指針和實參推斷302
8.5.4 模板實參推斷和引用303
8.6 小結306
第9章 標準模板庫307
9.1 函數對像307
9.1.1 標準庫定義的函數對像307
9.1.2 在算法中使用標準庫函數對像308
9.2 順序容器309
9.2.1 順序容器類型309
9.2.2 容器類型的通用操作310
9.2.3 順序容器的操作315
9.2.4 順序容器適配器319
9.3 迭代器321
9.3.1 迭代器的運算321
9.3.2 與迭代器有關的容器操作324
9.3.3 反向迭代器325
9.4 關聯容器325
9.4.1 pair類型326
9.4.2 關聯容器中的類型327
9.4.3 關聯容器迭代器328
9.4.4 向關聯容器素329
9.4.5 從關聯容器素330
9.4.6 map的下標操作330
9.4.7 訪問關聯容素331
9.5 泛型算法332
9.5.1 查找與統計333
9.5.2 排序334
9.6 小結335
第10章異常處理336
10.1 異常處理機制336
10.1.1 異常處理的概念336
10.1.2 異常處理的結構337
10.2 異常與函數340
10.2.1 在函數中處理異常340
10.2.2 在函數調用時處理異常341
10.3 異常處理的特殊情況342
10.3.1 重新拋出異常342
10.3.2 捕獲所有異常343
10.3.3 noexcept異常說明343
10.4 標準異常及層次結構344
10.4.1 標準庫異常344
10.4.2 自定義異常類型346
10.4.3 處理派生類的異常347
10.5 小結350
參考文獻351 前言 C 是一種廣泛使用的面向對像程序設計語言,常用於繫統開發、算法設計等領域,是迄今為止受廣大程序員喜愛的、強大的編程語言之一。它既支持面向過程的程序設計,也支持封裝、繼承或多態等面向對像的重要特征。 目前市面上很多優秀的C 或面向對像程序設計書籍都是以C 的基礎語法為出發點,或側重於語言的具體應用,或側重於純面向對像程序設計基本原理的闡述,造成了面向對像程序設計學習人員不能全局領略C 的詳細內容。本書作者以具有一定C語言或程序設計基礎的初學者為對像,使用簡潔易懂的語言,力求讓讀者輕松學習面向對像程序設計的基本原理與方法。 全書共10章,分為四部分。部分為C 基礎篇,由第1~3章組成,包括C 概述、數據輸入輸出以及C 非面向對像的基礎語法知識。第二部分為面向對像程序設計基礎特征篇,由第4~7章組成,包括類與對像、組合與繼承、多態以及運算符重載,主要介紹面向對像程序設計的三大特征及其C 實現。第三部分為泛型編程篇,由第8章和第9章組成,包括模板與泛型編程、標準模板庫。第四部分為異常處理篇,即第10章,主要介紹C 的異常處理機制與異常類。 本書第1~4章由高文超編寫,第5~10章由周法國編寫,後由周法國負責定稿。C 是一種廣泛使用的面向對像程序設計語言,常用於繫統開發、算法設計等領域,是迄今為止受廣大程序員喜愛的、強大的編程語言之一。它既支持面向過程的程序設計,也支持封裝、繼承或多態等面向對像的重要特征。 目前市面上很多優秀的C 或面向對像程序設計書籍都是以C 的基礎語法為出發點,或側重於語言的具體應用,或側重於純面向對像程序設計基本原理的闡述,造成了面向對像程序設計學習人員不能全局領略C 的詳細內容。本書作者以具有一定C語言或程序設計基礎的初學者為對像,使用簡潔易懂的語言,力求讓讀者輕松學習面向對像程序設計的基本原理與方法。 全書共10章,分為四部分。部分為C 基礎篇,由第1~3章組成,包括C 概述、數據輸入輸出以及C 非面向對像的基礎語法知識。第二部分為面向對像程序設計基礎特征篇,由第4~7章組成,包括類與對像、組合與繼承、多態以及運算符重載,主要介紹面向對像程序設計的三大特征及其C 實現。第三部分為泛型編程篇,由第8章和第9章組成,包括模板與泛型編程、標準模板庫。第四部分為異常處理篇,即第10章,主要介紹C 的異常處理機制與異常類。 本書第1~4章由高文超編寫,第5~10章由周法國編寫,後由周法國負責定稿。 本書在編寫過程中,得到了清華大學出版社的具體指導與大力幫助,另參考文獻中涉及的專家學者為我們提供了學習的機會,在此一並致謝! 由於編者水平有限,書中難免有疏漏之處,敬請賜教! 作者2020年5月於北京
![](http://img3m6.ddimg.cn/73/12/29139436-2_u_2.jpg)
![](http://img3m6.ddimg.cn/73/12/29139436-3_u_3.jpg)
![](http://img3m6.ddimg.cn/73/12/29139436-4_u_3.jpg)
![](http://img3m6.ddimg.cn/73/12/29139436-5_u_3.jpg)
![](http://img3m6.ddimg.cn/73/12/29139436-6_u_3.jpg)
![](http://img3m6.ddimg.cn/73/12/29139436-7_u_3.jpg)
![](http://img3m6.ddimg.cn/73/12/29139436-8_u_3.jpg)
| | |