C++編程慣用法

出版時間:2012-10  出版社:莫瑞 (Robert B. Murray) 人民郵電出版社 (2012-10出版)  作者:莫瑞  頁數:228  
Tag標簽:無  

內容概要

  在《C++編程慣用法:高級程序員常用方法和技巧》中,C++專家Robert B. Murray與我們分享了他寶貴的經驗和建議,以幫助初中級C++程序員得到進一步的提高?!  禖++編程慣用法:高級程序員常用方法和技巧》總共分為11章,先后介紹了抽象、類、句柄、繼承、多重繼承、考慮繼承的設計、模板的高級用法、重用、異常以及向C++的移植等相關的諸多話題。在書中,作者大量采用了實際開發(fā)中的代碼作為示例,向讀者展示了那些有用的編程策略,并對那些有害的做法進行了警示。為了幫助讀者更好地理解,在每一章結束前,在該章中介紹過的主要內容都被放到了一個列表中,此外,書中還給出了一些問題來激勵讀者們進行更多的思考和討論?!  禖++編程慣用法:高級程序員常用方法和技巧》適合具有一定C++編程經驗的程序員和項目經理閱讀,也適合對C++編程的高級主題感興趣的讀者參考。

作者簡介

Robert B. Murray在著作本書時是Quantitative Data公司中負責軟件工程的副總裁,1該公司的業(yè)務包括向世界500強公司提供面向對象的軟件解決方案.a在此之前,1他曾經供職于AT&T貝爾實驗室,并在那里參與了C++語言、編譯器和庫的開發(fā)。他還是The C++ Report的創(chuàng)刊編輯。從1987年起,他就開始在學術會議和專業(yè)會議上講授C++語言。

書籍目錄

第1章抽象 1.1 有關電話號碼的抽象模型 1.2抽象模型間的關系 1.3請考慮邊界條件 1.4使用CRC卡片來輔助設計 1.5小結 1.6問題 第2章類 2.1構造函數 2.2賦值 2.3公用數據 2.4隱式類型轉換 2.5操作符重載:成員或非成員? 2.6重載、缺省值以及省略符 2.7 Const 2.8返回值為引用 2.9靜態(tài)對象的構造 2.10小結 2.11 問題 第3章句柄 3.1一個String類 3.2使用計數器來避免多份拷貝 3.3 避免進行重編譯:Cheshire Cat 3.4使用句柄來隱藏設計 3.5多種實現(xiàn) 3.6作為對象的句柄 3.7綜述 3.8小結 3.9問題 第4章繼承 4.1is-a關系 4.2公有繼承 4.3私有繼承 4.4保護型繼承 4.5與基類抽象的一致性 4.6純虛函數 4.7有關繼承的細節(jié)和陷阱 4.8小結 4.9問題 第5章多重繼承 5.1作為交集的多重繼承 5.2虛基類 5.3一些有關多重繼承的細節(jié)問題 5.4小結 5.5問題 第6章考慮繼承的設計 6.1被保護的接口 6.2我們的設計是否應該考慮到繼承? 6.3一些為繼承所做的設計的例子 6.4結論 6.5小結 6.6問題 第7章模板 7.1模板類Pair 7.2一些有關模板的細節(jié) 7.3模板的實例化 7.4智能指針 7.5作為模板參數的表達式 7.6模板函數 7.7小結 7.8問題 第8章模板的高級用法 8.1使用了模板的容器類 8.2示例:Block 8.3有關Block的設計細節(jié) 8.4帶有迭代器的容器:List 8.5迭代器的設計細節(jié) 8.6性能上的考慮 8.7對模板參數的限制 8.8模板特化 8.9小結 8.10問題 第9章重用 9.1發(fā)現(xiàn)和獲得 9.2健壯性 9.3內存管理 9.4可選的內存分配方案 9.5傳遞參數給operator new 9.6管理外部資源 9.7尋找有關內存的bug 9.8名字沖突 9.9性能 9.10不要去猜想,而應該度量! 9.11算法 9.12動態(tài)內存分配中的瓶頸 9.13內嵌 9.14Tiemann法則 9.15小結 9.16問題 第10章異常 10.1一個負面的聲明 10.2為什么需要異常? 10.3一個異常的例子 10.4異常只應該用來表述異常情況 10.5理解異常 10.6責任評估 10.7設計異常對象 10.8小結 10.9問題 第11章向C++移植 11.1選擇使用C++ 11.2采用C++ 11.3設計和實現(xiàn) 11.4開發(fā)一個堅實的基礎 11.5相關的思考 11.6小結 11.7問題

章節(jié)摘錄

版權頁:   插圖:   在另外一種備選方案中,我們關注的計數對象包括對所有的(智能)指針以及被它們所指向的對象。每隔一段時間,我們就會使用一個“垃圾收集器”去檢測所有已有的指針,并對它們所指向的對象進行標注。如果存在未被標注的對象,它就會將該對象刪除。 這種做法既有好處,也有壞處。雖說對一個使用了計數器的指針進行的修改涉及多個計數器的改動(見7.4.2的代碼),對一個被收集的指針進行修改速度還是和對一個一般指針進行修改的速度是一樣的。在天平的另一端,對指針以及被指向對象的創(chuàng)建和刪除則要費時得多,因為這些操作必須要更新用來記錄已有指針和對象的數據結構。應用程序的設計者必須決定在什么時候來運行垃圾收集子程序。對于實時系統(tǒng)來說,在一個請求被響應前,我們可能得不到足夠的時間來完成我們的垃圾收集操作,這也會使得我們的垃圾收集器的邏輯變得復雜起來。 然而,如果程序中的指針的值經常發(fā)生改變,而指針本身和對象并不會經常被創(chuàng)建和摧毀,那么使用這種方案就可以給我們帶來最佳的性能。 對于那些外界不能獲得的循環(huán)指向對象來說,我們還是無法收集它們。不過我們可以通過對垃圾收集器進行改進,增加一個根指針來應付這種情況。如果所有的“活著的”對象都是要么被根指針所指向,要么被另外一個“活著的”對象中的指針所指向,那么垃圾收集器就可以從根指針開始對所有后續(xù)的指針進行遍歷,為每一個被指向的對象進行標注。由于垃圾收集器必須能夠找到對象中的所有指針,我們很難構建一個通用的庫來支持這種垃圾收集方式。在實際應用中,我們通常的做法是:為某個類手工創(chuàng)建一個單獨的函數來處理它。 9.4.3 Arena arena是用來管理內存的最簡單方案之一。但是它們只適用于某些特定的應用程序。在這些程序中,每個對象都是在arena中創(chuàng)建的。在后期,當arena被清空時,所有在arena中的對象都會被刪除。 例如,我們假設有一個C++的解析器,它會去解析一系列的文件,在某個文件中都會包含一系列的外部聲明。在解析過程中,解析器可能會創(chuàng)建一系列的符號表用來表示解析中碰到的名字。解析器的作者可能會認為,函數中聲明的符號在離開函數后就將變得沒有價值,可以被丟棄了:但對于有著文件范圍屬性的符號來說,在文件被完整解析之前,它都不能被丟棄。

媒體關注與評論

這是每一位專業(yè)C++程序員都應該閱讀的一本書,作者經驗豐富,給出了很多真知灼見。                       ——ACCU主席Francis Glassborow

編輯推薦

ACCU主席Francis Glassborow傾力推薦傳授如何在C++中作出選擇的專家級讀本闡釋如何使用C++進行更好編程的真知灼見使用大量示例代碼演示有用的編程策略

名人推薦

這是每一位專業(yè)C++程序員都應該閱讀的一本 書,作者經驗豐富,給出了很多真知灼見。 ——Francis Glassborow.ACCU主席

圖書封面

圖書標簽Tags

評論、評分、閱讀與下載


    C++編程慣用法 PDF格式下載


用戶評論 (總計12條)

 
 

  •   選擇的時候沒有細看,以為是新書。譯者還花精力翻譯這么舊的書 不解啊。。
  •   還沒看完,不過看了幾章了,寫的不錯.有些翻譯比較拗口.
  •   質量不錯,內容我就不評價了,各取所需。
  •   這本書與C++經典入門書籍類似,也是挺經典的,其中內容不但可以讓人養(yǎng)成好的習慣,面向對象編程時更容易,而且還可以避免誤入一些爭議的誤區(qū),引起不必要的麻煩。
  •   講得很好。這本書中給出了很多好的編程用法,還講解了使用這些用法的緣故。值得研究!
  •   對于有一定基礎和經驗的C++程序員來說,此書值得一讀。每章最后的小結和問題(思考)是此書最大的亮點。但是:這是一本1993年寫的書!??!有些內容過時了,甚至是現(xiàn)代C++編程所不再鼓勵或已經摒棄的做法。真搞不懂人郵出版社2012年出版這么一本舊書的目的何在!
  •   這本書02年就出版了,技術當然不是最新的。個人感覺適合使用C++兩三年左右的讀者。書中都是一些常用的技術,當然,對于用C++進行應用系統(tǒng)開發(fā)的人來說,掌握這本書的技術就足夠了。對于要寫程序庫的人來說,掌握這本書還遠遠不夠。
  •   書是好書,價格太貴
  •   買重了呢
  •   非常喜歡喝非長好的一本書
  •   基礎不好就不要買此書
  •     所謂的高級程序員常用方法和技巧只不過是一些C++常識的總結,做為一名C++程序員如果這些常識都做不到,不知道是否可以算是一名合格的C++程序員呢?
      如果你看了C++ primer之類的書,并不敢說自己對書中的內容了如指掌的話,建議還是看看這本書。
 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網 手機版

京ICP備13047387號-7