C++語言的設計與演化

2.13 3.12 6.1.2

出版信息

ISBN:9787030333469
定價:86.00元
作者:裘宗燕
出版社:科學出版社
出版時間:2012年03月
開卷分類:計算機

內容簡介

本書是C++的設計者關於C++語言的最主要著作之一。作者綜合性地論述了C++的發展歷史,C++中各種重要機制的本質意義和設計背景,這些機制的基本用途和使用方法,討論了C++所適合的套用領域及其未來的發展前景。全書共18章,分兩大部分,其中第1部分(第1~9章)分別介紹了C++的史前時代、C with Classes、C++的誕生、C++語言設計規則、1985—1993年表、標準化、關注和使用、庫、展望;第2部分(第10~18章)分別介紹了存儲管理、重載、多重繼承、類概念的精練、強制轉換、模板、異常處理、名稱空間、C語言預處理器。為便於查找與學習,全書最後附有專業術語索引。本書在幫助人們理解C++語言方面的作用是不可替代的。書面向每個學習和關注C++語言的專業工作者、科研人員、教師及學生。

目錄

第0章 致讀者1
第1部分
第1章 C++的史前時代17
1.1 simula和分散式系統17
1.2 C與系統程式設計19
1.3 一般性的背景20
第2章 C with Classes23
2.1 C with Classes的誕生23
2.2 特徵概覽25
2.3 類26
2.4 運行時的效率28
2.5 連線模型30
2.5.1 純樸的實現32
2.5.2 對象連線模型33
2.6 靜態類型檢查35
2.6.1 窄轉換36
2.6.2 警告的使用36
2.7 為什麼是C37
2.8 語法問題39
2.8.1 C聲明的語法39
2.8.2 結構標誌與類型名41
2.8.3 語法的重要性42
2.9 派生類42
2.9.1 沒有虛函式時的多態性43
2.9.2 沒有模板時的容器類44
2.9.3 對象的布局模型45
2.9.4 回顧46
2.10 保護模型46
2.11 運行時的保證48
2.11.1 構造函式與析構函式49
2.11.2 存儲分配和構造函式49
2.11.3 調用函式和返回函式50
2.12 次要特徵50
2.12.1 賦值的重載50
2.12.2 默認實參51
2.13 考慮過,但是沒有提供的特徵52
2.14 工作環境52
第3章 C++的誕生55
3.1 從C with Classes到C++55
3.2 目標57
3.3 cfront58
3.3.1 生成C59
3.3.2 分析C++60
3.3.3 連線問題61
3.3.4 Cfront發布61
3.4 語言特徵63
3.5 虛函式63
3.5.1 對象布局模型66
3.5.2 覆蓋和虛函式匹配67
3.5.3 基成員的遮蔽68
3.6 重載68
3.6.1 基本重載70
3.6.2 成員和友元71
3.6.3 運算符函式73
3.6.4 效率和重載73
3.6.5 變化和新運算符75
3.7 引用75
3.8 常量78
3.9 存儲管理80
3.10 類型檢查81
3.11 次要特徵82
3.11.1 注釋82
3.11.2 構造函式的記法82
3.11.3 限定83
3.11.4 全局變數的初始化84
3.11.5 聲明語句87
3.12 與經典C的關係88
3.13 語言設計工具91
3.14 《C++程式設計語言》(第一版)92
3.15 有關“什麼是”的論文93
第4章 C++語言設計規則96
4.1 規則和原理96
4.2 一般性規則97
4.3 設計支持規則100
4.4 語言的技術性規則103
4.5 低級程式設計支持規則106
4.6 最後的話108
第5章 1985—1993年表109
5.1 引言109
5.2 Release 2.0110
5.3 帶標註的參考手冊(ARM)112
5.4 ANSI和ISO標準化114
第6章 標準化118
6.1 什麼是標準118
6.1.1 實現細節119
6.1.2 現實的檢查120
6.2 委員會如何運作121
6.3 淨化123
6.3.1 查找問題123
6.3.2 臨時量的生存期127
6.4 擴充130
6.4.1 評價準則133
6.4.2 狀況134
6.4.3 好擴充的問題136
6.4.4 一致性137
6.5 擴充建議實例137
6.5.1 關鍵字實參137
6.5.2 受限指針141
6.5.3 字元集142
第7章 關注和使用146
7.1 關注和使用的爆炸性增長146
7.1.1 C++市場的缺位147
7.1.2 會議148
7.1.3 雜誌和書籍148
7.1.4 編譯器149
7.1.5 工具和環境149
7.2 C++的教與學150
7.3 用戶和套用156
7.3.1 早期用戶156
7.3.2 後來的用戶156
7.4 商業競爭157
7.4.1 傳統語言158
7.4.2 更新一些的語言158
7.4.3 期望和看法159
第8章 庫162
8.1 引言162
8.2 C++庫設計162
8.2.1 庫設計的折中163
8.2.2 語言特徵和庫的構造164
8.2.3 處理庫的多樣性164
8.3 早期的庫165
8.3.1 I/O流庫166
8.3.2 並行支持168
8.4 其他庫171
8.4.1 基礎庫171
8.4.2 持續性和資料庫172
8.4.3 數值庫172
8.4.4 專用庫172
8.5 一個標準庫173
第9章 展望175
9.1 引言175
9.2 回顧176
9.2.1 C++在其預期領域取得了成功嗎?176
9.2.2 C++是不是一種統一的語言?177
9.2.3 什麼是最大失誤?180
9.3 僅僅是一座橋樑嗎?180
9.3.1 在一個很長的時期我們還需要這座橋樑180
9.3.2 如果C++是答案,那么問題是什麼?181
9.4 什麼能使C++更有效184
9.4.1 穩定性和標準184
9.4.2 教育和技術185
9.4.3 系統方面的問題185
9.4.4 在檔案和語法之外186
9.4.5 總結187
第2部分
第10章 存儲管理189
10.1 引言189
10.2 將存儲分配和初始化分離190
10.3 數組分配191
10.4 放置192
10.5 存儲釋放問題193
10.6 存儲器耗盡195
10.7 自動廢料收集196
10.7.1 可選的廢料收集196
10.7.2 可選擇的廢料收集應該是什麼樣子的?198
第11章 重載200
11.1 引言200
11.2 重載的解析201
11.2.1 細粒度解析201
11.2.2 歧義控制203
11.2.3 空指針205
11.2.4 overload關鍵字207
11.3 類型安全的連線208
11.3.1 重載和連線208
11.3.2 C++連線的一種實現209
11.3.3 回顧210
11.4 對象的建立和複製212
11.4.1 對複製的控制212
11.4.2 對分配的控制213
11.4.3 對派生的控制213
11.4.4 按成員複製214
11.5 記法約定215
11.5.1 靈巧指針216
11.5.2 靈巧引用217
11.5.3 增量和減量的重載219
11.5.4 重載 ->*221
11.5.5 重載逗號運算符221
11.6 給C++增加運算符221
11.6.1 指數運算符221
11.6.2 用戶定義運算符223
11.6.3 複合運算符225
11.7 枚舉226
11.7.1 基於枚舉的重載227
11.7.2 布爾類型227
第12章 多重繼承229
12.1 引言229
12.2 普通基類230
12.3 虛基類231
12.4 對象布局模型235
12.4.1 虛基布局237
12.4.2 虛基類和強制237
12.5 方法組合238
12.6 有關多重繼承的論戰239
12.7 委託242
12.8 重命名243
12.9 基類和成員初始化245
第13章 類概念的精練247
13.1 引言247
13.2 抽象類247
13.2.1 為處理錯誤而用的抽象類248
13.2.2 抽象類型249
13.2.3 語法250
13.2.4 虛函式和構造函式251
13.3 const成員函式253
13.3.1 強制去掉const254
13.3.2 const定義的精練254
13.3.3 可變性與強制255
13.4 靜態成員函式256
13.5 嵌套的類257
13.6 Inherited::258
13.7 放鬆覆蓋規則260
13.8 多重方法264
13.9 保護成員267
13.10 改進代碼生成268
13.11 指向成員的指針269
第14章 強制轉換271
14.1 主要擴充271
14.2 運行時類型信息272
14.2.1 問題273
14.2.2 dynamic_cast運算符273
14.2.3 RTTI的使用和誤用278
14.2.4 為什麼提供一個“危險特徵”280
14.2.5 typeid()運算符281
14.2.6 對象布局模型284
14.2.7 一個例子:簡單的對象I/O285
14.2.8 考慮過的其他選擇287
14.3 強制的一種新記法290
14.3.1 問題290
14.3.2 static_cast運算符292
14.3.3 reinterpret_cast運算符293
14.3.4 const_cast運算符295
14.3.5 新風格強制的影響296
第15章 模板298
15.1 引言298
15.2 模板299
15.3 類模板301
15.4 對模板參數的限制303
15.4.1 通過派生加以限制304
15.4.2 通過使用加以限制305
15.5 避免代碼重複306
15.6 函式模板307
15.6.1 函式模板參數的推斷308
15.6.2 描述函式模板的參數309
15.6.3 函式模板的重載311
15.7 語法313
15.8 組合技術315
15.8.1 表述實現策略316
15.8.2 描述順序關係316
15.9 模板類之間的關係318
15.9.1 繼承關係318
15.9.2 轉換320
15.9.3 成員模板321
15.10 模板的實例化322
15.10.1 顯式的實例化323
15.10.2 實例化點325
15.10.3 專門化329
15.10.4 查找模板定義331
15.11 模板的作用333
15.11.1 實現與界面的分離334
15.11.2 靈活性和效率334
15.11.3 對C++其他部分的影響335
第16章 異常處理337
16.1 引言337
16.2 目標和假設338
16.3 語法339
16.4 結組340
16.5 資源管理341
16.6 喚醒與終止343
16.7 非同步事件346
16.8 多層傳播347
16.9 靜態檢查347
16.10 不變式350
第17章 名稱空間351
17.1 引言351
17.2 問題352
17.3 解決方案的思想354
17.4 一個解決方案:名稱空間355
17.4.1 有關使用名稱空間的觀點357
17.4.2 使名稱空間投入使用358
17.4.3 名稱空間的別名359
17.4.4 利用名稱空間管理版本問題360
17.4.5 細節361
17.5 對於類的影響366
17.5.1 派生類366
17.5.2 使用基類368
17.5.3 清除全局的static368
17.6 與C語言的兼容性369
第18章 C語言預處理器371
索引375

相關詞條

熱門詞條

聯絡我們