C++语言的设计和演化读书笔记

来源:互联网 发布:讲你知什么意思 编辑:程序博客网 时间:2024/06/11 19:36

        看过一遍,感觉同学的评价很有道理:闷。虽然本书的名气很大,但是看过之后总是感觉不是很过瘾。当初是抱着一窥C++语法后面的深层涵义的目的去看的,书中倒是也讲,但是讲得感觉还不如Eckel、Lippman讲的透彻。不过这可能与作者的写作思路有关。翻译的还是相当不错的,尤其欣赏前言里的一句话:“时尚转眼就可能变成无人理睬的烂泥,仅仅被眼球注意的东西很快就会被忽视,炒作最凶的东西往往也消失得最快,而真正有价值的成果往往起源于人们最基本的需求和向往。” 下面是当初做的一些读书笔记,因为到后面感觉已经没有什么动力了,所以就没记。

       1. 尊重人群而不尊重人群中的个体实际上就是什么也不尊重。C++的许多设计决策根源于我对强迫人按某种特定方式行事的极度厌恶。在历史上,一些最坏的灾难就起因于理想主义者们试图强迫人们“做某些对他们最好的事情”。这种理想主义不仅导致了对无辜受害者的伤害,也迷惑和腐化了施展权利的理想主义者们。我还发现,对于与其教义或理论出现不寻常的冲突的经验和实验,理想主义者往往有忽略它们的倾向。在理想出现问题的地方,甚至当空谈家也要赞成的时候,我宁愿提供一些支持,给程序员以选择的权利。 科学家与知识分子的责任就是保证他们的思想可以被公众接受,从而对社会有用,而不是为了做出一些专家的玩物。

        2 只提供一个特征是不够的,还必须以一种实际上可以负担得起的形式来提供它。在线函数在整个程序里必须具有唯一的定义。 inline 在线函数 garbage collection 废料收集机制 在每个成员函数里有一个称为this的指针,它所引用的就是调用成员函数的那个对象。

        2.7 一个程序设计语言要服务于两种目的:它为程序员提供了一种载体,是他们能描述需要执行的动作;它还提供了一组概念,程序员借助它们思考什么东西是能做的。第一方面的理想是要求一种“接近机器”的语言,使机器的所有重要方面都能简单而有效地处理,而且是以某种程序员比较容易看清楚的方式。C语言的设计主要就是遵循了这种想法。第二方面的理想是一种“接近需要解决的问题”的语言,这将使解的概念可以直接而简洁地描述好。假如到C里以创造出C++的那些机制的设计着眼点也就在这个方面。 语言设计并不是从某个第一原理出发的设计,而是一种需要经验、试验和有效工程折衷的艺术。给语言加入一个主要特征或者概念,也不应该只是信念的一跃,而是一个基于经验的经过深思熟虑的行动,应该考虑怎样才能使它很好地与其他特征构成的框架相配合,以及作为结果的语言应该如何使用等。

       4 理论必须与试验数据相吻合,否则就应该被更好的理论所取代。

原创粉丝点击