[Effective_C ].pdf

[Effective_C ].pdf

ID:33938673

大小:894.91 KB

页数:213页

时间:2019-03-01

[Effective_C ].pdf_第1页
[Effective_C ].pdf_第2页
[Effective_C ].pdf_第3页
[Effective_C ].pdf_第4页
[Effective_C ].pdf_第5页
资源描述:

《[Effective_C ].pdf》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、EffectiveC++Lostmouse简介认识CSDN已经很久了,但开始写技术文章不过是不久前的事,开辟这个专栏更是出于偶然。因为工作方面的原因,不能保证自己一直会有大块的时间来维护这个专栏,但我会尽力。至于Lostmouse本人,并非卡通中那只聪明可爱的小老鼠;相反,却是一只将至而立却还在迷惘的老猫:眼神固然明亮坚定,内心深处却还不知道下一个目标在哪儿。猫的天性只是等待吗?作为一个程序员,很喜欢“程序人生”的说法:写一段程序和亲历一段人生何其相似!只是,Lostmouse过去的程序里滥用了太多的if,switch,break,甚至fo

2、r(;;)。我期望,很快,自己写出的程序更完美,更高效。相片中是我和2岁的儿子斗斗,没出现的另一位主角是我的妻子妞妞——正是有了你们,我才觉得我所做的一切都有了意义。欢迎程序人生路上的每一位朋友和我联系!nettedfish@21cn.comnettedfish@yahoo.comB前言这本书是多年来我对专业程序员所做的C++教学课程下的一个自然产物。我发现,大部份学生在一个星期的密集训练之后,即可适应这个语言的基本架构,但要他们「将这些基础架构以有效的方式组合运用」,我实在不感乐观。于是我开始尝试组织出一些简短、明确、容易记忆的准则,做为

3、C++高实效性程序开发过程之用。那都是经验丰富的C++程序员几乎总是会奉行或几乎肯定要避免的一些事情。我最初的兴趣在于整理出一些可被某种「lint-like程序」施行的规则,最后我甚至领导一个计划,研究某种可将C++原始码中违反使用者指定条件之处检验出来的工具(你可以在EffectiveC++网站上找到此研究的一份概要报告)。不幸的是在我尚未完成其完整原型之前,这个研究计划便结束了。幸运的是,目前市面上已有这类C++检验工具(商品),而且不只一个。虽然我最初的兴趣是在研究可被(某种工具)自动实施的程序设计准则,但我很快了解到那个研究方向的局

4、限性。优秀的C++程序员所奉行的准则,多数都难以「公式化」;要不就是虽然它们有许多重要的例外情况,却被程序员盲目地奉行不渝。这使我念头一转:某些东西虽然不比计算机程序精准,但仍能比一本泛泛的C++教科书更集中火力,更打到重点。这个念头的结果就是你手上这本书:一本内含50个有效建议(如何改善你的C++程序技术和你的设计思维)的书。在这本书中,你会发现一些忠告,告诉你应该做些什么,为什么如此;告诉你不应该做些什么,又为什么如此。基本而言当然whys比whats更重要,但检阅一列列准则,也确实比强记一本或两本教科书更轻松更方便得多。和大部份的C+

5、+书籍不同,我的组织方式并非以语言特性做为依据。也就是说我并不在某处集中讨论constructors(建构式),在另一处集中讨论virtualfunctions(虚拟函式),又在第三个地方集中讨论inheritance(继承机制)。不,不是这样,本书的每一个讨论主题都剪裁合度地以一个个准则陈列出来。至于我对某特定语言性质的探讨,散布面积可能涵盖整本书。这种作法的优点就是比较容易反映出「特意挑选C++做为开发工具」的那些软件系统的复杂度。在那些系统之中,光只了解个别语言特性是不够的。例如,有经验的C++程序员知道,了解inline函式和了解v

6、irtualdestructors,并不一定表示你了解inlinevirtualdestructors。身经百战的开发人员都认知到,理解C++各个特性之间的互动关系,才是有效使用这个语言的最重要关键。本书组织反映出这一基本事实。这种作法的缺点是,你恐怕必须前后交叉参考而非只看一个地方,才能发现我所说的某个C++架构的全貌。为了将不方便性降至最低,我在书中各处放了许多交叉索引,书后并有一份涵盖全部范围的索引。(译注:为了协助读者更容易掌握EffectiveC++和MoreEffectiveC++二书,我以EffectiveC++CD为本,为两

7、书的中文版额外加上两书之间的交叉索引。此乃原书所无。如果文中出现像条款M5这样的参考指示,M便是代表MoreEffectiveC++)I筹划第二版期间,我改写此书的雄心一再被恐惧所取代。成千上万的程序员热情拥抱EffectiveC++第一版,我不希望破坏吸引他们的任何东西。但是自从我写了第一版之后,六年过去了,C++有了变化,C++链接库有了变化(见条款49),我对C++的了解也有了变化,乃至于C++的用途也有了变化。许许多多的变化。对我而言,重要的是我必须修订EffectiveC++以反映那些变化。我尝试一页一页地修改内容,但是书籍和软件

8、十分类似,局部加强是不够的,唯一的机会就是系统化地重写。本书就是重写后的结果:EffectiveC++2.0版。熟悉第一版的读者,可能有兴趣知道,书中的每一个条款都经过重新检验。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。