欢迎来到天天文库
浏览记录
ID:31610112
大小:1.04 MB
页数:202页
时间:2019-01-15
《effective c++ second edition(中文版)》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、关于本电子书制作本书的目的是为了方便大家的阅读。感谢lostmouse为我们翻译了这么好的C++名著,希望大家多多支持他,并希望他能继续给我们带来更多更好的文章。为了加强本书的完整性,特将侯老师翻译的前言和导读也加了近来。其余均为lostmouse翻译。制作:PROPHET(MSN:lzphd@hotmail.com欢迎志同道合的朋友互相交流)来源:http://blog.csdn.net/bat6032006/05/29善待周围的人,以感恩的心对待生活中的任何人和事。译者简介:Lostmouse简介认识CSDN已经很久了,但开始写技术文章不过是不久前的事,开辟这个专栏更是出于偶
2、然。因为工作方面的原因,不能保证自己一直会有大块的时间来维护这个专栏,但我会尽力。至于Lostmouse本人,并非卡通中那只聪明可爱的小老鼠;相反,却是一只将至而立却还在迷惘的老猫:眼神固然明亮坚定,内心深处却还不知道下一个目标在哪儿。猫的天性只是等待吗?作为一个程序员,很喜欢“程序人生”的说法:写一段程序和亲历一段人生何其相似!只是,Lostmouse过去的程序里滥用了太多的if,switch,break,甚至for(;;)。我期望,很快,自己写出的程序更完美,更高效。相片中是我和2岁的儿子斗斗,没出现的另一位主角是我的妻子妞妞——正是有了你们,我才觉得我所做的一切都有了意义。
3、欢迎程序人生路上的每一位朋友和我联系!nettedfish@21cn.comnettedfish@yahoo.com前言這本書是多年來我對專業程式員所做的C++教學課程下的一個自然產物。我發現,大部份學生在一個星期的密集訓練之後,即可適應這個語言的基本架構,但要他們「將這些基礎架構以有效的方式組合運用」,我實在不感樂觀。於是我開始嘗試組織出一些簡短、明確、容易記憶的準則,做為C++高實效性程式開發過程之用。那都是經驗豐富的C++程式員幾乎總是會奉行或幾乎肯定要避免的一些事情。我最初的興趣在於整理出一些可被某種「lint-like程式」施行的規則,最後我甚至領導一個計劃,研究某種可
4、將C++原始碼中違反使用者指定條件之處檢驗出來的工具(你可以在EffectiveC++網站上找到此研究的一份概要報告)。不幸的是在我尚未完成其完整原型之前,這個研究計劃便結束了。幸運的是,目前市面上已有這類C++檢驗工具(商品),而且不只一個。雖然我最初的興趣是在研究可被(某種工具)自動實施的程式設計準則,但我很快瞭解到那個研究方向的侷限性。優秀的C++程式員所奉行的準則,多數都難以「公式化」;要不就是雖然它們有許多重要的例外情況,卻被程式員盲目地奉行不渝。這使我念頭一轉:某些東西雖然不比電腦程式精準,但仍能比一本泛泛的C++教科書更集中火力,更打到重點。這個念頭的結果就是你手上
5、這本書:一本內含50個有效建議(如何改善你的C++程式技術和你的設計思維)的書。在這本書中,你會發現一些忠告,告訴你應該做些什麼,為什麼如此;告訴你不應該做些什麼,又為什麼如此。基本而言當然whys比whats更重要,但檢閱一列列準則,也確實比強記一本或兩本教科書更輕鬆更方便得多。和大部份的C++書籍不同,我的組織方式並非以語言特性做為依據。也就是說我並不在某處集中討論constructors(建構式),在另一處集中討論virtualfunctions(虛擬函式),又在第三個地方集中討論inheritance(繼承機制)。不,不是這樣,本書的每一個討論主題都剪裁合度地以一個個準則
6、陳列出來。至於我對某特定語言性質的探討,散佈面積可能涵蓋整本書。這種作法的優點就是比較容易反映出「特意挑選C++做為開發工具」的那些軟體系統的複雜度。在那些系統之中,光只瞭解個別語言特性是不夠的。例如,有經驗的C++程式員知道,瞭解inline函式和瞭解virtualdestructors,並不一定表示你瞭解inlinevirtualdestructors。身經百戰的開發人員都認知到,理解C++各個特性之間的互動關係,才是有效使用這個語言的最重要關鍵。本書組織反映出這一基本事實。這種作法的缺點是,你恐怕必須前後交叉參考而非只看一個地方,才能發現我所說的某個C++架構的全貌。為了將
7、不方便性降至最低,我在書中各處放了許多交叉索引,書後並有一份涵蓋全部範圍的索引。(譯註:為了協助讀者更容易掌握EffectiveC++和MoreEffectiveC++二書,我以EffectiveC++CD為本,為兩書的中文版額外加上兩書之間的交叉索引。此乃原書所無。如果文中出現像條款M5這樣的參考指示,M便是代表MoreEffectiveC++)籌劃第二版期間,我改寫此書的雄心一再被恐懼所取代。成千上萬的程式員熱情擁抱EffectiveC++第一版,我不希望破壞吸引他們的任何東
此文档下载收益归作者所有