注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)C/C++及其相關(guān)C++編程藝術(shù)

C++編程藝術(shù)

C++編程藝術(shù)

定 價(jià):¥39.80

作 者: (美)Herbert Schildt著;曹蓉蓉,劉小荷翻譯;曹蓉蓉譯
出版社: 清華大學(xué)出版社
叢編項(xiàng):
標(biāo) 簽: C++

ISBN: 9787302100171 出版時(shí)間: 2005-04-01 包裝: 平裝
開本: 26cm 頁數(shù): 330 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  本書不同于大多數(shù)其他的C++書籍。其他的C++書籍講授語言的基礎(chǔ),而本書展示了如何應(yīng)用C++在更大的范圍內(nèi)完成有趣的、有用的、甚至是神秘的程序設(shè)計(jì)任務(wù)。在此過程中充分顯示了C++語言的強(qiáng)大功能和優(yōu)雅性。大致來說,本書包含兩類應(yīng)用程序,第一類稱為“純代碼”,因?yàn)樗鼈冏⒅赜跀U(kuò)展C++程序設(shè)計(jì)環(huán)境本身。第2章的垃圾回收器,第3章的線程控制面板以及第8章的定STL容器都是這種類型的示例。第二類應(yīng)用程序顯示了如何應(yīng)用C++來完成各種計(jì)算任務(wù)。例如,第5章開發(fā)了一個(gè)可以斷點(diǎn)續(xù)傳的網(wǎng)格下載工具,第6章給出了一個(gè)如何建立財(cái)務(wù)應(yīng)用程序的范例,第8章中應(yīng)用C++實(shí)現(xiàn)了人工智能應(yīng)用。 本書以一段獨(dú)特有趣的代碼結(jié)束:Mini C++解釋程序,這個(gè)程序可以解釋C++的一個(gè)小子集。Mini C++解釋程序提示了C++的關(guān)鍵字和語法是如何一起工作從而組成這門語言的語法的。更重要的是,這可以使您了解這門語言的內(nèi)部機(jī)制,并且顯示了隱藏在C++設(shè)計(jì)背后的一些原因。使用Mini C++解釋程序不僅有趣,它還可以用作開發(fā)您自己的語言的起點(diǎn),還可以用作其他語言的解釋程序。本書每一章都提供了可以直接使用的代碼。例如,第2章的垃圾回收器可以適用于許多程序設(shè)計(jì)任務(wù)。然而,只有把這些應(yīng)用程序作為自己的開發(fā)起點(diǎn),才會(huì)獲益匪淺。例如,可以進(jìn)一步完善第8章的Internet文件下載工具,使其可以在某個(gè)指定的時(shí)間開始下載,或者可以監(jiān)控一個(gè)下載站點(diǎn),保持下載最新的文件。總之,可以將這些沒的程序和子系統(tǒng)作為您開發(fā)自己項(xiàng)目的跳板。

作者簡(jiǎn)介

  作者:HerbertSchildtHerbertSchildt,是世界頂級(jí)程序設(shè)計(jì)大師,全球頂尖編程圖書作者之一。他是C、C++、Java和C#編程語言的權(quán)威,也是Windows編程方面的專家。擁有伊利諾斯大學(xué)的計(jì)算機(jī)科學(xué)碩士學(xué)位。他的編程書籍在世界范圍內(nèi)的銷量已經(jīng)超過3000000冊(cè),并被翻譯成多種語言流傳于世。Java實(shí)用教程(第3版)>>更多作品

圖書目錄

第1章  C++的功能 1
1.1  簡(jiǎn)潔而豐富的語法 1
1.2  功能強(qiáng)大的庫 2
1.3  STL 2
1.4  程序員控制一切 3
1.5  細(xì)節(jié)控制 3
1.6  運(yùn)算符重載 3
1.7  一種簡(jiǎn)潔精練的對(duì)象模型 4
1.8  C++發(fā)展史 4
第2章  簡(jiǎn)單的C++垃圾回收器 5
2.1  兩種內(nèi)存管理方法的比較 5
2.1.1  手工內(nèi)存管理的優(yōu)缺點(diǎn) 6
2.1.2  垃圾回收的優(yōu)缺點(diǎn) 6
2.1.3  兩種方法都可以使用 7
2.2  在C++中創(chuàng)建垃圾回收器 7
2.3  選擇垃圾回收的算法 8
2.3.1  引用計(jì)數(shù) 9
2.3.2  標(biāo)記并清除 9
2.3.3  復(fù)制 9
2.3.4  采用哪種算法 9
2.3.5  實(shí)現(xiàn)垃圾回收器 10
2.3.6  是否使用多線程 10
2.3.7  何時(shí)回收垃圾 10
2.3.8  關(guān)于auto_ptr 11
2.4  一個(gè)簡(jiǎn)單的C++垃圾回收器 11
2.5  詳細(xì)討論GCPtr 23
2.5.1  GCPtr的數(shù)據(jù)成員 23
2.5.2  函數(shù)findPtrInfo() 24
2.5.3  GCIterator typedef 25
2.5.4  GCPtr的構(gòu)造函數(shù) 25
2.5.5  GCPtr的析構(gòu)函數(shù) 26
2.5.6  回收垃圾函數(shù)collect() 26
2.5.7  重載賦值運(yùn)算符 28
2.5.8  GCPtr的復(fù)制構(gòu)造函數(shù) 30
2.5.9  指針運(yùn)算符和轉(zhuǎn)換函數(shù) 30
2.5.10  begin()和end()函數(shù) 32
2.5.11  shutdown()函數(shù) 32
2.5.12  兩個(gè)實(shí)用函數(shù) 33
2.6  GCInfo 33
2.7  Iter 34
2.8  如何使用GCPtr 36
2.8.1  處理分配異常 37
2.8.2  一個(gè)更有趣的示例 38
2.8.3  對(duì)象的分配和丟棄 40
2.8.4  分配數(shù)組 41
2.8.5  使用具有類類型的GCPtr 43
2.8.6  一個(gè)比較大的演示程序 45
2.8.7  加載測(cè)試 51
2.8.8  一些限制 53
2.9  試著完成下面的任務(wù) 53
第3章  C++中的多線程 54
3.1  什么是多線程 54
3.2  為什么C++沒有內(nèi)建支持多線程 55
3.3  選用什么樣的操作系統(tǒng)和編譯器 56
3.4  Windows線程函數(shù)概述 56
3.4.1  線程的創(chuàng)建和終止 56
3.4.2  Visual C++對(duì)CreateThread()和ExitThread()的替換 57
3.4.3  線程的掛起和恢復(fù) 58
3.4.4  改變線程的優(yōu)先級(jí) 59
3.4.5  獲取主線程的句柄 60
3.4.6  同步 60
3.5  創(chuàng)建線程控制面板 63
3.5.1  線程控制面板 64
3.5.2  線程控制面板的詳細(xì)分析 68
3.5.3  控制面板的演示 74
3.6  一個(gè)多線程的垃圾回收器 78
3.6.1  附加的成員變量 79
3.6.2  多線程的GCPtr構(gòu)造函數(shù) 79
3.6.3  TimeOutExc異常 81
3.6.4  多線程的GCPtr析構(gòu)函數(shù) 81
3.6.5  gc()函數(shù) 82
3.6.6  isRunning()函數(shù) 82
3.6.7  gclist的同步訪問 83
3.6.8  其他兩個(gè)改變 83
3.6.9  完整的多線程垃圾回收器 83
3.6.10  多線程垃圾回收器的使用 95
3.7  試著完成下面的任務(wù) 97
第4章  C++的擴(kuò)展 98
4.1  為什么使用譯碼器 98
4.2  實(shí)驗(yàn)性的關(guān)鍵字 99
4.2.1  foreach循環(huán) 99
4.2.2  cases語句 100
4.2.3  typeof 運(yùn)算符 101
4.2.4  repeat/until循環(huán) 102
4.3  試驗(yàn)C++新特性的譯碼器 102
4.4  使用譯碼器 111
4.5  譯碼器的運(yùn)行方式 112
4.5.1  全局聲明 112
4.5.2  main()函數(shù) 112
4.5.3  gettoken()和skipspaces()函數(shù) 114
4.5.4  轉(zhuǎn)換foreach循環(huán) 117
4.5.5  轉(zhuǎn)換cases語句 119
4.5.6  轉(zhuǎn)換typeof運(yùn)算符 121
4.5.7  轉(zhuǎn)換repeat/until循環(huán) 122
4.6  演示程序 124
4.7  嘗試完成以下任務(wù) 130
第5章  Internet文件下載工具 131
5.1  WinINet庫 131
5.2  文件下載工具子系統(tǒng) 132
5.2.1  操作的一般理論 137
5.2.2  download()函數(shù) 137
5.2.3  ishttp()函數(shù) 142
5.2.4  httpverOK()函數(shù) 142
5.2.5  getfname()函數(shù) 143
5.2.6  openfile()函數(shù) 143
5.2.7  update()函數(shù) 144
5.3  Download頭文件 145
5.4  文件下載工具的演示 145
5.5  基于GUI的下載工具 147
5.5.1  WinDL代碼 147
5.5.2  WinDL的運(yùn)行方式 152
5.6  嘗試完成以下任務(wù) 153
第6章  使用C++的財(cái)務(wù)計(jì)算 154
6.1  計(jì)算貸款的定期償還 154
6.2  計(jì)算投資的預(yù)期價(jià)值 156
6.3  計(jì)算為了獲得預(yù)期的價(jià)值所需的原始投資 157
6.4  為了獲得預(yù)期的養(yǎng)老金所需的原始投資 159
6.5  計(jì)算給定投資所能得到的養(yǎng)老金的最大值 160
6.6  計(jì)算貸款余額 162
6.7  嘗試完成以下任務(wù) 163
第7章  基于AI的問題求解 164
7.1  表示法和術(shù)語 164
7.2  組合爆炸 165
7.3  搜索方法 167
7.4  需要解決的問題 167
7.5  FlightInfo結(jié)構(gòu)和Search類 169
7.6  深度優(yōu)先搜索 171
7.6.1  match()函數(shù) 176
7.6.2  find()函數(shù) 177
7.6.3  findroute()函數(shù) 177
7.6.4  顯示路線 179
7.6.5  深度優(yōu)先搜索分析 179
7.7  廣度優(yōu)先搜索 179
7.8  添加啟發(fā)信息 182
7.8.1  爬山搜索法 183
7.8.2  爬山法分析 189
7.9  最低成本搜索 189
7.10  尋找多解 190
7.10.1  路徑刪除 191
7.10.2  節(jié)點(diǎn)刪除 192
7.11  尋找“最優(yōu)”解決方案 198
7.12  回到丟失鑰匙的問題 204
7.13  嘗試完成以下任務(wù) 207
第8章  定制STL容器 208
8.1  STL的簡(jiǎn)要回顧 208
8.1.1  容器 209
8.1.2  算法 209
8.1.3  迭代器 209
8.2  其他的STL實(shí)體 209

8.3  定制容器的要求 210
8.3.1  一般要求 210
8.3.2  序列式容器的其他要求 211
8.3.3  關(guān)聯(lián)式容器的要求 211
8.4  創(chuàng)建范圍可選的動(dòng)態(tài)數(shù)組容器 212
8.4.1  RangeArray的運(yùn)行方式 212
8.4.2  完整的RangeArray類 213
8.4.3  詳細(xì)討論RangeArray類 224
8.4.4  一些RangeArray示例程序 235
8.4.5  嘗試完成以下任務(wù) 245
第9章  Mini C++解釋程序 246
9.1  解釋程序和編譯器 246
9.2  Mini C++縱覽 247
9.3  Mini C++說明 247
9.4  非正式的C++理論 249
9.4.1  C++表達(dá)式 250
9.4.2  定義表達(dá)式 250
9.5  表達(dá)式解析器 252
9.5.1  解析器代碼 252
9.5.2  分解源代碼 264
9.5.3  顯示語法錯(cuò)誤 270
9.5.4  表達(dá)式求值 271
9.6  Mini C++解釋程序 272
9.6.1  main()函數(shù) 291
9.6.2  解釋程序的預(yù)掃描程序 292
9.6.3  interp()函數(shù) 295
9.6.4  處理局部變量 297
9.6.5  調(diào)用用戶自定義的函數(shù) 299
9.6.6  給變量賦值 300
9.6.7  執(zhí)行if語句 302
9.6.8  switch語句和break語句 304
9.6.9  處理while循環(huán) 306
9.6.10  處理do-while循環(huán) 307
9.6.11  for循環(huán) 308
9.6.12  處理cin和cout語句 309
9.7  Mini C++的庫函數(shù) 311
9.8  mccommon.h頭文件 313
9.9  編譯并鏈接Mini C++解釋程序 315
9.10  演示Mini C++ 315
9.11  改進(jìn)Mini C++ 323
9.12  擴(kuò)展Mini C++ 324
9.12.1  添加新的C++特性 324
9.12.2  添加輔助特性 325

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)