Exceptional C++(中文版)

出版時(shí)間:2012-6  出版社:電子工業(yè)出版社  作者:薩特  頁(yè)數(shù):255  字?jǐn)?shù):289000  譯者:聶雪軍  
Tag標(biāo)簽:無(wú)  

內(nèi)容概要

  《exceptional
c++:47個(gè)c++工程難題、編程問題和解決方案(中文版)》講述如何用標(biāo)準(zhǔn)c++進(jìn)行企業(yè)級(jí)的軟件開發(fā),通過“問題/解答”的方式,啟發(fā)讀者思考,幫助了解隱藏在問題背后的設(shè)計(jì)思想,以及各種編程指導(dǎo)原則適用的場(chǎng)合。本書列出的條款涵蓋了許多方面的主題,尤其對(duì)異常安全性、類和模塊的合理設(shè)計(jì),正確的代碼優(yōu)化,以及編寫符合c++標(biāo)準(zhǔn)的可移植代碼進(jìn)行了深入的討論。
  《exceptional c++:47個(gè)c++工程難題、編程問題和解決方案(中文版)》適于有一定c++編程基礎(chǔ)的讀者閱讀。

作者簡(jiǎn)介

作者:(美國(guó))薩特(Sutter H.) 譯者:聶雪軍

書籍目錄

1 泛型程序設(shè)計(jì)與c++標(biāo)準(zhǔn)庫(kù)
條款1:迭代器難度系數(shù)
條款2:大小寫不敏感的字符串——之一
條款3:大小寫不敏感的字符串——之二
條款4:可重用性最高的泛型容器——之一
條款5:可重用性最高的泛型容器——之二
條款6:臨時(shí)對(duì)象
條款7:標(biāo)準(zhǔn)庫(kù)的使用(或者,再論臨時(shí)對(duì)象)
2 異常安全性相關(guān)的問題與技術(shù)
條款8:編寫異常安全的代碼——之一
條款9:編寫異常安全的代碼——之二
條款10:編寫異常安全的代碼——之三
條款11:編寫異常安全的代碼——之四
條款12:編寫異常安全的代碼——之五
條款13:編寫異常安全的代碼——之六
條款14:編寫異常安全的代碼——之七
條款15:編寫異常安全的代碼——之八
條款16:編寫異常安全的代碼——之九
條款17:編寫異常安全的代碼——之十
條款18:代碼的復(fù)雜性——之一
條款19:代碼的復(fù)雜性——之二
3 類的設(shè)計(jì)與繼承
條款20:類的編寫技巧
條款21:虛函數(shù)的重載
條款22:類之間的關(guān)系——之一
條款23:類之間的關(guān)系——之二
條款24:繼承的使用和濫用
條款25:面向?qū)ο蟪绦蛟O(shè)計(jì)
4 編譯器防火墻和pimpl慣用法
條款26:將編譯期依賴性降到最低——之一
條款27:將編譯期依賴性降到最低——之二
條款28:將編譯期依賴性降到最低——之三
條款29:編譯防火墻
條款30:fast pimpl慣用法
5 名字查找、名字空間和接口規(guī)則
條款31:名字查找與接口規(guī)則——之一
條款32:名字查找與接口規(guī)則——之二
條款33:名字查找和接口規(guī)則——之三
條款34:名字查找與接口規(guī)則——之四
6 內(nèi)存管理
條款35:內(nèi)存管理——之一
條款36:內(nèi)存管理——之二
條款37:auto_ptr
7 誤區(qū)、陷阱以及錯(cuò)誤的慣用法
條款38:對(duì)象標(biāo)識(shí)
條款39:自動(dòng)轉(zhuǎn)換
條款40:對(duì)象的生存期——之一
條款41:對(duì)象的生存期——之二
8 其他主題
條款42:變量的初始化
條款43:正確使用const
條款44:類型轉(zhuǎn)換
條款45:bool
條款46:轉(zhuǎn)調(diào)函數(shù)
條款47:控制流程
后記
參考書目

章節(jié)摘錄

版權(quán)頁(yè):   從Gury of the Week條款8的最初發(fā)布到現(xiàn)在,這一系列的條款已經(jīng)走過了很長(zhǎng)的一段路程。我希望你能喜歡它們并且發(fā)現(xiàn)它們確實(shí)很有用。我要特別感謝委員會(huì)成員Dave Abrahams和Greg Colvin,感謝他們?cè)陉U述異常安全性上的深刻洞察力,以及對(duì)這部分內(nèi)容的草稿所提出的中肯批評(píng)。Dave和Grep,以及Matt Austern,他們一起編寫了兩個(gè)完整的會(huì)議提案,這些提案的議題是將當(dāng)前的異常安全性保證添加到標(biāo)準(zhǔn)庫(kù)中。 在這個(gè)系列的條款中,我們將討論兩個(gè)主題:首先是C++的兩個(gè)主要特性,異常處理和模板,我們將分析如何編寫異常安全的代碼(即在出現(xiàn)異常的情況下代碼仍能正確運(yùn)行);其次是異常中立(即將所有的異常都轉(zhuǎn)發(fā)給調(diào)用者)的泛型容器。這些東西說(shuō)起來(lái)很容易,但做起來(lái)絕不輕松。 現(xiàn)在,我們一起來(lái)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的容器(一個(gè)能執(zhí)行壓入操作和彈出操作的棧),并分析如果要使這個(gè)容器成為異常安全的和異常中立的,我們需要解決哪些問題。 我們將從Cargill停下來(lái)的地方開始——也就是,逐步地創(chuàng)建一個(gè)異常安全的模板stack,而cargill當(dāng)初也正是以Stack為例來(lái)提出他的問題的。稍后,我們將降低對(duì)模板參數(shù)類型T的需求,顯著改善Stack容器,然后還將給出一些高級(jí)技巧,用于在管理資源時(shí)實(shí)現(xiàn)異常安全性。按照這種方法,我們可以找出下列問題的答案: 異常安全性的不同“級(jí)別”指的是什么? 泛型容器可以是或者說(shuō)應(yīng)該是完全異常中立的嗎? 標(biāo)準(zhǔn)庫(kù)中的容器類是異常安全的還是異常中立的? 異常安全性會(huì)不會(huì)影響對(duì)容器公共接口的設(shè)計(jì)? 在泛型容器中應(yīng)該使用異常規(guī)范嗎? 這個(gè)構(gòu)造函數(shù)是異常安全的和異常中立的嗎?要搞清楚這個(gè)問題,我們先考慮在哪些地方將可能拋出異常。簡(jiǎn)單來(lái)說(shuō),答案就是:在每個(gè)函數(shù)中。因此,第一步就是對(duì)上述代碼進(jìn)行分析并確定實(shí)際調(diào)用了哪些函數(shù),包括自由函數(shù)、構(gòu)造函數(shù)、析構(gòu)函數(shù)、運(yùn)算符重載函數(shù),以及其他的成員函數(shù)。 在Stack的構(gòu)造函數(shù)中,首先將vsize_設(shè)為10,然后通過new T(vsize_)來(lái)分配初始內(nèi)存。后者將首先調(diào)用operator new()()(或者是默認(rèn)的operator new(),或者是由T提供的operator new())來(lái)分配內(nèi)存,然后再調(diào)用vsize_次T::T函數(shù)。在這個(gè)過程中有兩個(gè)操作可能會(huì)失敗。第一個(gè)操作是內(nèi)存分配操作本身,在失敗的情況下。perator new()()將拋出一個(gè)bad alloc異常。第二個(gè)操作是T的默認(rèn)構(gòu)造函數(shù),在這個(gè)函數(shù)中可能拋出任意的異常,在這種情況下,所有已經(jīng)構(gòu)造的T對(duì)象都會(huì)被銷毀,并且通過調(diào)用。perator delete()()來(lái)確保已分配的內(nèi)存被自動(dòng)回收。 因此,上面的函數(shù)是完全異常安全的和異常中立的,我們繼續(xù)來(lái)看下一個(gè)問題……什么?你問為什么這個(gè)函數(shù)是健壯的?好吧,我們對(duì)這個(gè)函數(shù)進(jìn)行更為詳細(xì)的討論。 1.這個(gè)函數(shù)是異常中立的。在函數(shù)中不會(huì)捕獲任何異常,因此,如果new拋出了異常,那么這個(gè)異常就會(huì)像我們所要求的那樣被正確地轉(zhuǎn)發(fā)給調(diào)用者。

編輯推薦

《Exceptional C++:47個(gè)C++工程難題、編程問題和解決方案(中文版)》中的每個(gè)問題都給出了難度系數(shù),在這些問題中闡釋一些微妙的編程錯(cuò)洪以及程序設(shè)計(jì)上的考慮。在閱瀆書中給出的解答之前,你可以先嘗試自己進(jìn)行解答?!禘xceptional C++:47個(gè)C++工程難題、編程問題和解決方案(中文版)》將對(duì)這些問題進(jìn)行洋細(xì)的分析,并指出哪些地方是錯(cuò)誤的,以及如何改正這個(gè)問題。

圖書封面

圖書標(biāo)簽Tags

無(wú)

評(píng)論、評(píng)分、閱讀與下載


    Exceptional C++(中文版) PDF格式下載


用戶評(píng)論 (總計(jì)34條)

 
 

  •   學(xué)習(xí)C++的經(jīng)典著作,看完后對(duì)編程中的細(xì)節(jié)問題有很大的幫助
  •   c++經(jīng)典四書五經(jīng)之一,看完effective c++ 必定想看more,看完excetional c++必定也想看more,看完more 接著看exception c++style ,另外 effectvie stl,stl庫(kù),c++ 特本版 。。等
    學(xué)習(xí)c++的過程是一個(gè)類似正弦曲線,第一階段的增長(zhǎng),在于c的語(yǔ)法基礎(chǔ),第二階段下降,探索c++背后機(jī)制,當(dāng)實(shí)踐到一定程度后,就會(huì)對(duì)C++規(guī)則有感觸,----不知從哪里看到了,個(gè)人正處在下降階段,很有體會(huì)
  •   討論了一些比較細(xì)節(jié)深入的話題
  •   effectivec++和exceptionalc++一樣的經(jīng)典條例試的閱讀很清晰推薦購(gòu)買
  •   聽別人說(shuō),這本書很好,值得閱讀
  •   這是一本非常不錯(cuò)的一本書,建議仔細(xì)閱讀
  •   這書是給大俠看的,呵呵。我是在閑的時(shí)候翻翻,了解一下。本人還沒寫個(gè)太大的程序,學(xué)習(xí)一下是有必要的。
  •   C++程序猿的必備讀物
  •   幫同學(xué)賣的,他說(shuō)很好
  •   應(yīng)當(dāng)是好書
  •   書有點(diǎn)臟,其他還不錯(cuò)
  •   好書,C++程序員值得好好研讀
  •   適合經(jīng)常編程的朋友參考,很多是經(jīng)常出現(xiàn)錯(cuò)誤和不好設(shè)計(jì)的地方,有參考價(jià)值。
  •   關(guān)于這本書沒什么好說(shuō)的了。如何編寫異常安全的C++代碼,必讀這本,當(dāng)然還有姊妹篇了。
  •   不錯(cuò)的書,正在看。。。。
  •   比較喜歡,要讀多遍才能懂的
  •   里邊講到的知識(shí)點(diǎn)平時(shí)工作中會(huì)遇到,很不錯(cuò)
  •   公司的tutor推薦的書,要好好看,呵呵
  •   C++經(jīng)典書,不過第三版不如第二版,很多內(nèi)容刪除了。部門一起學(xué)習(xí)這本書了,不錯(cuò)~
  •   從目錄就開始卻一直缺到第14頁(yè),封面的下部也有列橫,物不所值。
  •   這算是經(jīng)典書籍,很不錯(cuò)的一本書~
  •   書的印刷還是很好的,內(nèi)容質(zhì)量自不用說(shuō)了吧,那么多人都推薦。而且快遞服務(wù)非常熱情,非常的好,因?yàn)槭謾C(jī)壞了,快遞大叔主動(dòng)留下來(lái)自己的手機(jī)讓我到時(shí)找他,還答應(yīng)留意我的包裹。真的很好,很喜歡,比淘寶雜亂的快遞好多了。全五星。
  •   很好,內(nèi)容很強(qiáng)大,和More一起買的
  •   還行吧,中規(guī)中矩的。
  •   一本講c++不錯(cuò)的書
  •   經(jīng)典之經(jīng)典,C++必讀
  •   首先書質(zhì)量是不錯(cuò)的,但相比傳世經(jīng)典其余基本稍微薄點(diǎn),總覺得有點(diǎn)不值!
  •   書的紙張和內(nèi)容都挺好的,可惜的是還沒好好看~~~
  •   正好在做異常安全代碼,這書正好適用。在異常方面,比 primer 和 essential 好使。
  •   再辦出的質(zhì)量很不錯(cuò),但是就是小貴了一點(diǎn),不過,內(nèi)容經(jīng)典無(wú)容置疑!
  •   sutter出品,皆是精品
  •   C++經(jīng)典,用到這一步,幾乎是高手了!
  •   修煉C++道路上必備的武器
  •   包裝好,價(jià)格公道,送貨快捷
 

250萬(wàn)本中文圖書簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書網(wǎng) 手機(jī)版

京ICP備13047387號(hào)-7