注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(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 包裝: 平裝
開(kāi)本: 26cm 頁(yè)數(shù): 330 字?jǐn)?shù):  

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

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

作者簡(jiǎn)介

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

圖書(shū)目錄

第1章  C++的功能 1
1.1  簡(jiǎn)潔而豐富的語(yǔ)法 1
1.2  功能強(qiáng)大的庫(kù) 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  使用具有類(lèi)類(lèi)型的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++沒(méi)有內(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的同步訪問(wèn) 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語(yǔ)句 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語(yǔ)句 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庫(kù) 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的問(wèn)題求解 164
7.1  表示法和術(shù)語(yǔ) 164
7.2  組合爆炸 165
7.3  搜索方法 167
7.4  需要解決的問(wèn)題 167
7.5  FlightInfo結(jié)構(gòu)和Search類(lèi) 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  回到丟失鑰匙的問(wèn)題 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類(lèi) 213
8.4.3  詳細(xì)討論RangeArray類(lèi) 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++說(shuō)明 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  顯示語(yǔ)法錯(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語(yǔ)句 302
9.6.8  switch語(yǔ)句和break語(yǔ)句 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語(yǔ)句 309
9.7  Mini C++的庫(kù)函數(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 ? 讀書(shū)網(wǎng) www.stefanvlieger.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)