欢迎来到antinucleon的窝!!这里随手记录了antinucleon的点点滴滴

2010年8月17日星期二

突然有一种似曾相识的感觉

那就是MIT。

曾经让人魂牵梦萦的地方啊。

高中时,那是我神圣的梦想。而如今呢?

被国内各种制度恶心着,而梦想就这样自暴自弃了?难道就破罐子破摔了?

看到她手里握着的MIT的ph.d证明,一脸幸福的笑容,我能理解。

我应该找回曾经的梦想,而不是被制度而恶心。

没有什么是不可以完成的。

没有什么是不可以舍去的。

Time the study pain is temporary, has not learned the pain is life-long.


2010年8月16日星期一

随手一笔

此刻的境况
如同解方程组
至少是三元的

花费很大的精力
求解x,y,z……
未掌握权值a,b,c……

于是
没有得出解  

 

我们并不是在表述某种存在,而是在努力寻找存在的原因

细节的细节就不再是细节本身

真实永远取决于观察主体

不要在生活中寻找你要的东西,而要努力感受生活中到底发生了什么

 

Time the study pain is temporary, has not learned the pain is life-long.

 

 

ps.原版权属于Itgirl和pcman,弦音绕梁,同知同觉~~~~~

 

继续干活

 


上海的老鼠就是猛



~rt

2010年8月8日星期日

【存档】【转载】C++ 书籍导读(12) - 总结

以前很难找到一本能够真实反映ANSI C++的书。C++ 的好的译著是从2001年
下半年开始的,现在几乎是全盛时期。本文将对这些C++ 的书籍做一个回顾,以
帮助入门的读者快速定位这些书籍:

  下面出现的书,除特别注明的,都在本FAQ(7)、(8)的书单里面。

  我认为第一类读者属于那些没有计算机编程基础的人,当然这并不影响他把
C++ 作为学习的目标,但是为了能够顺利地学习,必须重视学习计算机的基础知
识。可以推荐的书目包括:James P.Cohoon的《C++程序设计》、 Deitel父子的
C++大学教程(第二版)。 学习能力强、要求高的读者可以阅读讲解更加细致的
《C++编程金典(第3版)》;

  第二类读者是有计算机基础知识,学习过编程的人。属于初级水平,可以阅
读的书包括:《C++ Primer Plus》、《C++编程金典》、《C++ Primer》、《C++
编程思想》; 学习能力强,要求比较高的读者可以选择 Bjarne Stroustrup 的
《C++程序设计语言(特别版)》;

  通过各种途径学习过 C++的人,可以在比较高的起点系统地学习 C++,典型
的书就是:Bjarne Stroustrup《C++程序设计语言(特别版)》。我认为这是所有
的C++ 学习者最终应该阅读的一本书。

  一个初级读者,除学习系统的教科书外,还需要对自己的编程环境有深入的
了解,才可能动手进行实践。其中Petzold的《Windows 编程(第五版)》(北大出
版社)、《Unix高级编程》 (人民邮电出版社)以及其他讲述Windows 编程、Linux
Unix编程环境的相关的书目可以帮助达到这一目的。这些书不在本 FAQ范围之内,
请大家到 Programming 和其他相关的版查阅更多的信息。

  一个中高级读者,除学习系统的教科书外,还可以阅读一些参考书。可推荐
的介绍 STL 的书籍包括:《C++标准程序库--自修教程与参考手册》、《 C++
STL(中文版)》和《STL 源码剖析》; 另外,《数据结构算法与应用 - C++语
言描述 》很好地介绍了 C++用于数据结构的使用方法;

  《Effective C++中文版 2nd Edition》、《More Exceptional C++中文版》
以条目的方式介绍了现代C++ 编程中常见的问题。对于熟悉 C++的用法和概念有
一定帮助。《C++精髓——软件工程方法》则属于比较系统地对 C++ 的运用进行 
论述和分析。尽管该书对 STL 的篇幅略显单薄,但仍不失为一本值得阅读的好
书;

  《C++语言的设计和演化》出自Bjarne Stroustrup之手,阅读这个历史,可
以领悟 C++ 发展过程中各个特性的始末由来,知其然,又知其所以然。 是精通
C++ 的必读书籍。

  新书还会不断涌现,本 FAQ将根据实际情况进行适当增加或调整。希望初学
者从本 FAQ 中能够获得一些帮助。更多的信息需要自己去体会 ,到书店亲自看
一看,读一读,看看这本书是不是适合你。

有关 C++ 的绝大多数书目可以在下列网上找到:

http://www.china-pub.com/ 或
http://www.china-pub.com/search/power_search/
powersearch_step2.asp?name=C%2B%2B&andor=and&zyandor=and

http://www.huachu.com.cn/ 或
http://www.huachu.com.cn/itbook/booklist.asp?tsmc=C%2B%2B&andor=and

--

�手中握住繁� 心情�也�得荒� 才��世上一切都��幻  
�青春剩下日� ��就要�成白� 不�的只有那首歌  在心中�回的唱 


※ 来源:・BBS 水木清华站 smth.edu.cn・[FROM: 211.150.204.8]


【存档】【转载】C++ 书籍导读(11) 重点(3) - C++ 程序设计

本来这样的介绍已经多余。为 FAQ完整起见,还是把本书列入。本文以下部分
均摘录自《C++ 程序设计》的译者序,作者刘瑞挺。把该书作为重点,是因为
该书对于那些没有接触过计算机编程的人来说是比较好的入门书。主译刘瑞挺
曾经在电子工业出版社工作,后任《个人电脑》中文版主编。

    这是一本令人称赞的好书,原书的全名是《C++程序设计,编程与面向对象
设计导论》(C++ Program Design,An Introduction to Programming and 
Object-OrientedDesign)。  它是美国弗吉尼亚大学的考思(James P. Cohoon)
教授和戴卫森(JackW.Davidson)教授为计算机科学教育而开发的第一门课程
(CSl),该教材对全校各个专业都十分合适。但它同样可以用于其他课程。例如
纽约城市大学的麦克拉肯(Daniel D.McCracken)教授就使用本书作为软件设计
实验室课程的教材。

    那么,这本书有什么特点呢?我认为它有“四个面向”的特点:即面向非计
算机专业、面向对象程序设计、面向软件实践基础、面向读者自学提高。

    第一,这是一本面向非计算机专业的计算机入门教科书,虽然它也可以作
为计算机专业的教材。我们知道,在整个专业教育中,有95%的人是从事非计
算机专业的,而这些专业都毫无例外地存在着应用计算机的广阔天地。作者认
为,在今天的信息时代,无论哪个专业的人都应该学会一点程序设计,而作者
选择的编程语言正是C++。这种选择的依据是:在各种领域的应用软件设计中,
C++已经成为不可或缺的工具:在各行各业的招聘面谈中,能否熟练掌握C++语
言已经成为择优录取的重要条件。过去,人们以为只有计算机专家才会C++,只
有计算机专业才需要学习C++,而非计算机专业的人根本用不着学C++,这种观
点已经与现实世界大相径庭。这是作者在设计这门课程时,进行了大量社会调
查后得出的结论。

    第二,这本书充分强调面向对象的程序设计,而根本不涉及面向过程的程
序设计。正如C++不是计算机专业的专利那样,面向对象程序设计也不是计算机
专业的特权。许多人误以为面向对象的概念十分抽象,什么封装啦、继承啦,
太难懂了。其实,这完全是一个误导。我们知道,面向对象这个革命性的计算
概念是今天大多数高级语言的基石,C++的基石是面向对象,Java的基石也是面
向对象。面向对象编程技术的缔造者、电脑未来学家艾兰・凯(Alan Kay)在
Xerox的PARC研究中心时,创造了一种编程语言Smalltalk,它是面向对象的起
源。凯喜欢把它比喻为一个生物学系统,例如人体系统。人体是由数以万亿计
的细胞组成的,每个细胞都要执行自己的特定任务。每个细胞并不知道其他细
胞内部发生的事情,但它们能互相沟通,并且协作完成更加复杂的任务。每个
细胞用细胞膜封装起来,彼此却能通信联系,并且通过遗传来继承前辈的功
能。因此,面向对象与面向过程是两种完全对立的方法。过去的一些书,总是
先大讲特讲面向过程,而后再少讲略讲面向对象,以为这是全面系统的教学方
法。殊不知,这种折衷恰好冲淡了面向对象的精髓。而本书则开门见山地树立
对象概念,反反覆覆地巩固对象概念,使读者能真正学会这种优秀的编程思想
与方法。

    第三,本书非常重视实践环节。它提供的EzWindows看来是一个大赢家,对
学生有很大的启发性,使他们看到响应鼠标点击就能实现作图,这正是他们编
程的方式。本书还为最后的项目提供了良好的跳板,通常在课程最后花3周甚至
4周的时间,让两个学生一组工作。在CD—ROM光盘上,存有学生所需的全部代
码和EzWindows库函数,这节省了学习的时间。本书的每个细节,从组织到编程
技巧,都为今后的软件工程课奠定了牢固的基础。

    第四,本书的写作风格特别适合于自学,更不必说当作听课的教材了。它
细腻而不失于简练,翔实而不落于烦琐,连贯而不陷于空泛,使人读来爱不释
手。第2版就有大量很好的练习,从相当简单的评论是非,到大多数学生要花若
干小时的编程项目。第3版又增加了许多自我检测题,使读者能验证自己掌握的
程度。作者在前言里或者个人谈话中,都没有要求讲授或自学全书的内容,在
弗吉尼亚大学的第一门课程即是如此。教师可以根据自己的特殊需要,自由选
择想要强化的内容。作者在前言里给出他们在弗吉尼亚上第一门课的安排,本
教材作为CSl可以有许多不同的处理方式,也可以有许多种自学的方法。的确,
本书能以完全不同的方式使用。显然,人们喜欢这本书。经验证明,它使教学
获得乐趣,而且听不到学生的抱怨,这是十分罕见的现象。


--

�手中握住繁� 心情�也�得荒� 才��世上一切都��幻  
�青春剩下日� ��就要�成白� 不�的只有那首歌  在心中�回的唱 


※ 来源:・BBS 水木清华站 smth.edu.cn・[FROM: 211.150.204.8]

【存档】【转载】C++书籍导读(10)重点(2): C++ Primer

本来这样的介绍已经多余。为 FAQ完整起见,还是把本书列入。本文以下部分
均摘录自《C++ Primer》的译者序,作者潘爱民。本人认为该书是具有计算机
基础,并了解一门编程语言的人入门C++的较好的书,水平中等(译者认为是
中等偏深)。

    这是我心仪已久的一本书。我相信很多读者也有同样的感受。

    在所有的编程语言中,C++可以说是最为复杂的。它既是一门传统的编程语
言,也是一门新的编程语言。说它是一门传统语言,是因为C++诞生已将近20年的
历史了,特别是最近10年来C++得到了快速的发展。C++是计算机软件领域中覆盖
面最为广阔的编程语言。并且,与C++相关的智力投入也是其他任何一门语言所无
法比拟的。人们对于C++的研究已经远远超出了对于一门编程语言所应有的关注。
所以,现在的C++已经非常成熟,有大量的资源(文档、书籍、源代码等等)可供
我们使用。说C++是一门新的编程语言,是因为在1998年C++由ISO( 
International  Standards  Organization)完成了标准化,从此C++领域有了统
一的标准,所有的编译器都将向标准靠拢(或者说,与标准兼容),这有利于我
们写出可移植的C++代码来。同时C++标准也统一了C++标准库,为C++用户提供了
最为基本的基础设施。C++经历了多年的发展,终于有了一个相对稳定的版本,所
以,我们应该用一种新的眼光来看待C++,而不再简单地把C++认为是C语言的超
集。本书正是新版本C++的写照,通过本书,你可以重新审视C+十语言,这是我
翻译过程中最为真切的体会,它纠正了我过去对于C++语言的一些误解。虽然我从
1993年开始就一直在使用C++,但是直到阅读了这本书之后,我才从真正意义上全
面地认识了C++语言。

    本书的权威性无需我多说,看看本书原著的前言,了解了两位作者的背景之
后,你就可以知道,这本书是经验和标准的完美结合。Stanley Lippman从1984年
开始一直从事C++方面的工作,在C++的实现与应用方面有着丰富的经验。本书前
两个版本的成功也证明了他在阐释 C++语言方面的独到之处。Josee Lajoie从
1990年开始成为C++标准委员会的一名成员,并且承担了很重要的职务。由于她的
参与,毫无疑问,本书一定是与标准兼容的。

    讲述C++的书非常多,并且不乏优秀和经典之作。在如此众多的C++书籍中,
本书仍具有不可替代的地位,我想主要的原因在于本书具有以下几个特色:

      (l)内容广阔。从本书的规模(厚度)就可以看出这一点,C++语言融入
了大量优秀的特性,其内容的丰富程度已经远非C语言所能及。在所有的C++书籍
中,本书的覆盖面是最为广阔的,从最基本的C++程序设计,到面向对象程序设
计,以及基于模板的程序设计,面面俱到,而且讲解细致入微,值得仔细品味。

     (2)许多实际的范例程序。纯粹的技术讲解总是非常枯燥的,但是阅读本
书并不感觉枯燥,因为作者在介绍每一部分内容的时候都结合一个实际的例子,
读者通过这些例子能够很容易地掌握相应的技术要点,并且看到每一种技术的实
际用法,这是本书之所以引人入胜的重要原因之一。

     (3)叙述内容的安排。C++是一门多风格的程序设计语言(multi-paradigm 
Programming language),不仅支持面向对象程序设计,也支持其他的程序设计

思想。本书的叙述结构正体现了C++的这种特点,作者从程序设计思想的角度分别
讲述了C++的各种语言要素,便读者比较容易抓住C++语言的本质特征。

      (4)与编译器无关,遵从C++标准。本书的内容并不特定于某一个C++编译
器实现,而是适用于所有与C++标准兼容的编译器。作者在讲解过程中也指出了编
译器的一些内部考虑,例如,编译器如何在各种上下文环境中解析重载函数,如
何处理除式类型转换,等等,这些内容有利于加深读者对C++的理解。

      (5)配套的练习。在每一节讲解之后,作者给出了一些练习,这些练习反
映了这一节的中心内容,读者通过这些练习可以巩固所学的知识。所以,本书也
可以被用作教材,用于系统全面地学习C++语言。

    虽然本书书名《C++Primer》的中文含义是"C++初级读本",但是它绝对不
是一本很轻松的入门教材,特别是关于名字空间、函数重载解析过程、模板机制
和泛型算法(generic algorithms)等内容并不是一个 C++初学者能够很快掌握
的。如果你以前没有看过其他的C++书籍,那么可能需要反复阅读多遍才能掌握本
书讲述的内容:如果你已经有了C++的基础(比如,已经看过其他的C++入门书
籍),那么阅读本书可以让你快速掌握C++的要点:如果你是一名有多年C++实践
经验的程序员,那么阅读本书可以让你重新理解C++。总之,这是一本很好的学习
和参考书籍,值得你反复阅读。但是,正如书名所指示的,它不是一本高级书
籍。按照我个人理解,它的技术水准应该在中等偏深一点的层次上。

      本书的翻译工作由我和张丽共同完成,张丽完成了初稿的翻译工作,我做
了第二遍翻译检查工作,书中每一句话我都认真检查过,个别地方还修改了原著
的一些错误。C++中有些术语还没有统一的中文说法,对于这些术语的处理,我们
尽可能地做到符合中文的语言习惯,读者可以参考本书最后所附的英汉对照索
引。这份索引是由中国电力出版社的诸位编辑手工制作完成的。他们是刘江、朱
恩从、陈维宁、程璐、关敏、刘君、夏平、宋宏、姚贵胜、常虹、乔晶、阎宏。
感谢他(她)们的辛勤劳动。

      在翻译过程中,不断收到读者来信或者来电询问这本书的出版情况。我理
解读者对于一本好书的迫切心情,我的想法是,有关C++的书籍和资料如此之多,
所以,学习C++不一定非要阅读这本书,但是它可以加快你学习的步伐,并且帮助
你深入而全面地理解C++。既然你已经看到了这本书,那就不要错过吧。

      这本书不会让你失望的,我坚信这一点。

--

�手中握住繁� 心情�也�得荒� 才��世上一切都��幻  
�青春剩下日� ��就要�成白� 不�的只有那首歌  在心中�回的唱 


※ 来源:・BBS 水木清华站 smth.edu.cn・[FROM: 211.150.204.8]

【存档】【转载】 C++书籍导读 (9)重点(1): C++程序设计语言

本来这样的介绍已经多余。为 FAQ完整起见,还是把本书列入。本文以下部分
均摘录自《C++程序设计语言(特别版)》的译者序,作者裘宗燕,为北京大学
数学学院信息科学系教授。

Bjaner Stroustrup的《The C++ Programming Language》是有关C++语言的第
一部著作。毫无疑问,它是关于C++语言及其程序设计的最重要著作,在此领
域中的地位是无可替代的。《The C++ Programming Language》一书伴随着
C++语言的发展演化而不断进步,经过第1版(1985)、第2版(1991),第3版
(1998),本书的原本是第3版经过补充和修订后的“特别版(2000)”(对
应于国内引进的影印本)。对于这个中译本,我想说的第一句话就是“来的太
晚了”。 

要学习C++语言和程序设计,要将C++应用于程序设计实践,本书自然是必读之
书。这个“特别版”以标准化的C++语言为基础,讨论了C++的各种语言特征和
有效使用这一语言的程序设计技术。书中也用了很大篇幅,在标准库以及一般
软件开发的环境下,讨论了使用C++语言编程和组织程序的许多高级技术。本
书内容覆盖了C++语言及其程序设计的各个方面,其技术深度与广度是举世公
认的。 

然而,作者讨论的并不仅是C++语言及其程序设计。本书的讨论远远超出这一
范围,第四部分用了很大篇幅去讨论软件开发过程及其问题。即使是在介绍
C++语言及其程序设计的具体问题时,作者也常在程序结构、设计和软件开发
的大环境下,提出自己的许多认识。作者有很强的计算机科学与技术基础,在
系统软件开发方面极富经验,他所提出的观点和意见值得每个工作在这个领域
中的人重视。 

当然,重视并不是盲从。在Stroustrup的两本关于C++的重要著作(本书和
《C++语言的设计与演化》)中,都有这样一句话使我印象深刻:希望读者带
着一种健康的怀疑态度。看来这是作者深深铭刻在心的一种思想,也特别值得
国内每个从事信息技术,或者努力向这个方向发展的人注意。从来就没有什么
救世主,Stroustrup不是在传道,他只是在总结和论述自己在这个领域中工作
的经验。请不要将本书中的东西作为教条,那也一定是本书作者所深恶痛绝
的。 

许多人说本书比较难读,这种说法有一定道理。真正理解本书的一般性内容需
要花一些时间,融会贯通则更需要下功夫。理解本书的内容不仅需要去读它,
还需要去实践。问题是,花这个时间值吗?作者在讨论C++语言的设计时提出
了一个观点:你从C++语言中的收获大致与在学习实践这个语言的过程中所付
出的努力成正比;而且C++是一个可以伴随你成长的语言。同样的话也适用于
本书。如果你致力于将自己发展成一个职业的程序员,或者要在计算机方面的
技术领域中长期工作下去,我认为,你从本书中的收获大致也会与你所花的时
间成正比,这本书也是一本能够伴随你成长的书。 

当然,这本书也不是没有缺陷的。由于作者有着极其丰富的实践经验,因此,
当他想要论述一个问题、提出一个观点时,常会想到在自己长期实践中最适合
说明这个问题的事例,用几句简短的话引述有关的情况。由于作者对C++谙练
有加,因此,在讨论中有时会不知不觉地将某些并不显然的东西当作不言自明
的事情提出来。而对于许多初学者而言,这些都可能成为学习中的障碍。为了
帮助这部分读者,我也在书中一些地方加入了少量注释,解释一些背景性情
况。过多过滥的注释会增大书的篇幅、干扰读者阅读,绝不会是大家都喜欢的
方式。因此我在这样做的时候也很有节制,希望不会引起读者的反感。 

由于读者的水平有极大差异,一些人很熟的东西,另一些人可能就莫名其妙。
我无法解决所有问题,但也希望能为广大读者做一点服务性的工作。为了帮助
初学者入门,为使本书(包括其中文译本)能更好地在国内计算机领域中发挥
作用,也为了关心本书、学习本书的人们能够有一个交流经验、传播认识的场
所,我将在下面地址维护一个有关本书的信息、情况、认识和意见的网页: 

http://www.math.pku.edu.cn/teachers/qiuzy/cpp.htm

在其中收集有关的信息,记录朋友们(包括我自己)的认识与意见,提出的问
题和相应的认识,有关这一译本的勘误信息,原英文书的更正与更新信息等
等。欢迎诸位提供自己的见解和问题,提供有价值的线索。我没时间去创建与
维护一个“纯的”C++语言及其程序设计的讨论组(确实需要这样的场所,而
有关VC等的讨论组倒是太多了。如果有人愿做,我乐得坐享其成、积极参与并
尽可能提供帮助),只想抽空将接收到的和自己写的东西编辑公布。与我联系
可以发email:qzy@math.pku.edu.cn。我还将把有关《C++语言的设计与演
化》一书的相关信息也放在那里,供大家参考。 

还请读者注意,本书的原本是“特别版”的第1次印刷,即“第3版”的第11次
印刷,也是目前国内可买到的影印本的原书。在那以后,作者在重印时不断更
正书中的错误,并修改了少量的程序实例。最新的重印是第16次印刷,有关情
况可从作者的网页或上面网址找到。由于一些情况,本书无法按最新的重印本
翻译,但我还是参考了作者的网页,在译文中尽可能地采纳了有关勘误信息。
此外,在翻译过程中我也发现了一些错误。经与作者的email讨论取得了一致
意见,有关更正反映在本书里。由于这些原因,本书在个别地方的说法可能与
读者手头的英文原书有异。如果想确认有关情况,请查看原书的勘误信息。 
  


--

�手中握住繁� 心情�也�得荒� 才��世上一切都��幻  
�青春剩下日� ��就要�成白� 不�的只有那首歌  在心中�回的唱 


※ 来源:・BBS 水木清华站 smth.org・[FROM: 211.150.209.7]

【存档】【转载】C++ 书籍导读(8) - 推荐的书单(2)

除了C++ 教材之外,还有一些相关的 C++书籍,可以帮助进行提高,或在相
关领域获得更多的信息。这样的书可选择的范围更宽,但是优秀的上乘之作并不
多。除没有出版的外,大多我都阅读过,其余也去新华书店尽量地翻看一下,以
免有重大失误。有些书可能和书名并不太符合,但是仍然有较好的参考价值。我
们浏览一下那些比较典型的书目:

  hhuu: lippman的 C++模型, 是一本描述C++对象模型的书, 大部分内容都很
有参考价值, 而且没有同类的书可以作为比较的. 但是不适合作为教材.

  相关书目的详细介绍,放到后面再写。

----------------------------------------------------------------------
书  名:C++语言的设计和演化 
原 书 名:The Design and Evolution of C++ 
原出版社:Addison-Wesley 
作  者:Bjarne Stroustrup 
译  者:裘宗燕 
书  号:7-111-09098-5
页  码:396
定  价:¥48.00
出 版 社:机械工业出版社 
出版日期:2002-1-1 
----------------------------------------------------------------------
书  名:C++问题求解——《C++程序设计语言》的伴侣书
原 书 名:C++ Solutions: Companion to The C++ Programming Language 3/e
原出版社:Addison-Wesley 
作  者:David Vandevoorde 
译  者:裘宗燕
书  号:??
页  码:~300 pp 
定  价:??
出 版 社:机械工业出版社
出版日期:2002-?? 尚未出版
----------------------------------------------------------------------
书  名:C++精髓——软件工程方法 
原 书 名:Core C++:a software engineering approach 
原出版社:Prentice Hall 
作  者:Victor Shtern 
译  者:李师贤 张珞玲 刘斌 译等 
书  号:7-111-10100-6
页  码:804
定  价:¥85.00
出 版 社:机械工业出版社 
出版日期:2002-8-1 
----------------------------------------------------------------------
书  名:数据结构算法与应用 - C++语言描述 
原 书 名:Data Structures, Algorithms, and Applications in C++ 
原出版社:Mcgraw-Hill 
作  者:Sartej Sahni 
译  者:汪诗林等 
书  号:7-111-07645-1
页  码:536
定  价:¥49.00
出 版 社:机械工业出版社 
出版日期:2000-1-1 
----------------------------------------------------------------------
书  名:Effective C++中文版 2nd Edition 
原 书 名:Effective C++ 2nd Edition
原出版社:
作  者:Scott Meyers 
译  者:侯捷 
书  号:7-5609-2525-1
页  码:284
定  价:¥49.80
出 版 社:华中科技大学出版社 
出版日期:2001-9-1 
----------------------------------------------------------------------
书  名:More Exceptional C++中文版 
原 书 名:More Exceptional C++ 
原出版社:Addison Wesley/Pearson 
作  者:Herb Sutter 
译  者:於春景 
书  号:7-5609-2771-8
页  码:¥39.80
定  价:¥39.80
出 版 社:华中科技大学出版社 
出版日期:2002-9-1 
----------------------------------------------------------------------
书  名:深度探索 C++ 对象模型
原 书 名:Inside The C++ Object Model
原出版社:
作  者:Stanley B.lippman 
译  者:侯捷 
书  号:ISBN 7560924182
页  码:320
定  价:¥54.00
出 版 社:华中科技大学出版社 
出版日期:2001-5-1 
----------------------------------------------------------------------
书  名:《C++标准程序库——自修教程与参考手册》
原 书 名:
原出版社:
作  者:Nicolai M.Josuttis
译  者:侯捷 孟岩
书  号:
页  码:
定  价:¥108 
出 版 社:华中科技大学出版社
出版日期:2002年9月
----------------------------------------------------------------------
书  名:C++ STL(中文版) 
原 书 名:C++ Standard Template Library 
原出版社:PH PTR 
作  者:P.J.Plauger Alexander A.Stepanov Meng Lee David R.Musser 
译  者:王昕 
书  号:7-5083-1058-6
页  码:535
定  价:¥69.00
出 版 社:中国电力出版社 
出版日期:2002-5-1 
----------------------------------------------------------------------
书  名:STL 源码剖析
作  者:侯捷 
书  号:7-5609-2699-1
页  码:500
定  价:¥68.00
出 版 社:华中科技大学出版社 
出版日期:2002-5-1 
----------------------------------------------------------------------

--

�手中握住繁� 心情�也�得荒� 才��世上一切都��幻  
�青春剩下日� ��就要�成白� 不�的只有那首歌  在心中�回的唱 


※ 来源:・BBS 水木清华站 smth.edu.cn・[FROM: 211.150.200.5]

【存档】【转载】C++ 书籍导读(7) - 推荐的书单(1)

本文先列出一批数目,详细的介绍和评价再逐文发出来。读者可以到
http://www.china-pub.com 、http://www.huachu.com.cn 等网站寻找折扣、购
买方法等信息。

  本文(书单(1))主要列出的是比较全面的适合做 C++ 教材的书目。其中,
BS 的《C++程序设计语言》适合中高级读者;James的《C++程序设计》和Deitel
父子的《C++ 大学教程》适合初、中级读者,特别是需要补充计算机和二进制基
础知识的读者;其余的适合于中级读者,其中以 《C++ Primer》和《C++编程金
典》在更有名气一些。他们各自的特点,见本文其他系列文章涉及到的地方。

  这些书,有些属于多年流行的名著,有些广泛被美国大学所采纳。国内出版
社引进的时候还是动了脑筋的。当然,书店中也有不少译著,无论在内容选材还
是排版上都不足推荐为教材的,就没有列入本书单中。如有遗漏请补充。

  同类书目的选择最好亲自去阅读。

  尚未发现其他比较优秀的同类书目。如果有一天,有人推荐说,新出了一本
C++ 教材,简直要好到天上去了,和圣经一样,你最好也别信。另外台湾作者侯
俊杰翻译的《Ensential C++》和《深度探索C++对象模型》,本人没有读过,暂
时无法对他们进行归类。不过从作者以及原著的影响看,不会对下面的书单造成
重要遗漏。

----------------------------------------------------------------------
书  名:C++程序设计语言(特别版) 
原 书 名:The C++ Programming Language, Special Edition  
原出版社:Addison Wesley  
作  者:Bjarne Stroustrup  
译  者:裘宗燕  
书  号:7-111-10202-9 
页  码:936 
定  价:¥85.00 
出 版 社:机械工业出版社  
出版日期:2002-7-1  
----------------------------------------------------------------------
书  名:C++ Primer (3RD)中文版 
原 书 名:C++ Primer Third Edition 
原出版社:Addison Wesley 
作  者:Stanley B.Lippman,Josee Lajoie 
译  者:潘爱民 张丽 
书  号:7-5083-0989-8
页  码:1033
定  价:¥128.00
出 版 社:中国电力出版社 
出版日期:2002-4-1 
----------------------------------------------------------------------
书  名:C++程序设计 
原 书 名:C++ Program Design
原出版社:McGraw-Hill 
作  者:James P.Cohoon & Jack W.Davidson 
译  者:刘瑞挺 韩毅刚 盛素英 刘海嘉 等 
书  号:7-5053-7284-X
页  码:776
定  价:¥78.00
出 版 社:电子工业出版社 
出版日期:2002-1-1 
----------------------------------------------------------------------
书  名:C++ Primer Plus (第四版)中文版 
原 书 名:C++ Primer Plus,Fourth Edition 
原出版社:Sams 
作  者:Stephen Prata 
译  者:孙建春 韦强 
书  号:7-115-10335-6
页  码:745
定  价:¥69.00
出 版 社:人民邮电出版社 
出版日期:2002-7-1 
----------------------------------------------------------------------
书  名:C++编程思想 
原 书 名:Thinking in C++ 
原出版社:McGraw Hill 
作  者:Bruce Eckel 
译  者:刘宗田等 
书  号:7-111-07116-6
页  码:422
定  价:¥39.00
出 版 社:机械工业出版社 
出版日期:2000-1-1 

现在本书第二版已出版,一本书拆成了两卷,我在书店只看到了第一卷。
----------------------------------------------------------------------
书  名:C++大学教程(第二版) 
原 书 名:The Complete C++ Training Course,Second Edition 
原出版社:
作  者:Harvey M.Deitel Paul James Deitel 
译  者:邱仲潘 等 
书  号:7-5053-6727-7
页  码:816
定  价:¥78.00
出 版 社:电子工业出版社 
出版日期:2001-7-1 
----------------------------------------------------------------------
书  名:C++编程金典(第3版) 
原 书 名:C++ How To Program, Third edition 
原出版社:Prentice Hall/Pearson
作  者:H.M.Deitel, P.J.Deitel 
译  者:周靖 黄都培 
书  号:7-302-05785-0
页  码:1036
定  价:¥118.00
出 版 社:清华大学出版社 
出版日期:2002-9-1 
----------------------------------------------------------------------

--

�手中握住繁� 心情�也�得荒� 才��世上一切都��幻  
�青春剩下日� ��就要�成白� 不�的只有那首歌  在心中�回的唱 

【存档】【转载】 C++ 书籍导读(6) - “题外话”:实践问题

 初学者会面临很多实践的问题,当然教科书会提供习题,有些出版社还出了
习题题解类的书。我本人对此不反对,它的确可以巩固对语法的记忆和理解,但
这远远是不够的。

  实践问题包括几种:


  第一类:工具的使用。

  怎么录入程序、怎么安装编译环境、怎样运行编译工具、怎样使用集成工具
等等。这样的问题要到分门别类的书里面去找。

  我在新华书店看 C++ 的书的时候,的确看到一本讲 C++ 的书(书名叫做什
么xxxx典),里面介绍了怎么使用 VisualC 工具, 遗憾的是这本书本身不值得
推荐,所以,名字我也想不起来了。

  可以找Charles Petzold《Programming windows》以及Linux 编程方面的书,
来找相关 Visual C++ 集成环境、g++ 编译工具的使用方法,也可以在 Google
里面找相关的文章,或直接找到相关工具的帮助文件。

  第二类:API 的使用。

  有些初学者常常不能分清楚使用什么工具和手段来解决什么问题,也就导致
不能自主地对问题进行分类并自行找到答案。我认为这样的问题在看过本版的几
个 FAQ 之后还依然如故的话,就只能给扣上一顶不思进取的帽子了。

  一个完整的综合提问大致是这样的:(当然可以不完全包括)

我 (1)在什么操作系统下 (2)用什么语言 (3)用什么工具 (4)在什么领域的
   (5)用什么方法 (6) 解决什么问题 (见下面的表)。

  不同的问题要寻求不同的书或其他解决途径。 详细的见本版《SMTH 编程讨
论区提问导航》一文。

  第三类:应用程序的框架设计

  遇到一个问题,如何思考?如何着手解决?客观地讲,这个问题的确没有答
案,尽管多读一些书,包括高级编程、软件工程等方面的各种书,尽管可以做习
题,但是,大多数人的经验是逐渐积累并不断走弯路走过来的。学而不思则惘,
思而不学则怠,学而时习之。我能说的,前人都说过了。

  不要认为借鉴了前人,自己就不走弯路了。没有走过弯路的,永远不知道什
么是弯路。所以提示初学者不要求速。经验只能用更多的付出、探索和时间去换
取。

  当然本版的文章,以及即将建设的精华区,以及将另出 FAQ 的全球 C++ 资
源等,都是值得你博览的东西。



--

�手中握住繁� 心情�也�得荒� 才��世上一切都��幻  
�青春剩下日� ��就要�成白� 不�的只有那首歌  在心中�回的唱 


※ 修改:・exbluesea 于 Oct  9 13:56:59 修改本文・[FROM:   211.150.200.5]
※ 来源:・BBS 水木清华站 smth.edu.cn・[FROM: 211.150.200.5]


【存档】【转载】C++ 书籍导读(5) - 什么是编程思想

书的细部不通过细致、通篇的阅读,是很难体味得到的。因此这一点很难让
没有买书的人看目录和内容简介来进行判断。我也只能通过看过的有限的基本书
谈我的看法。

  所谓编程思想就是讲如何进行运用。C++ 的书籍很多,但是 C++的语法确是
一样的,同类型的不同的书就是编程思想的不同。

  我认为能够体现编程思想的,大致有几种情况:

  1、一条具体的语法如何进行运用、与C以及其他语言在用法上的区别、优缺
点等。这方面比较好的书包括:《 C++编程思想》(1、2版)、《C++ 大学教程》
(Deitel父子)、《C++编程金典》(Deitel父子,这本书的特点是过细,学习起来
可能比较吃力)、《C++ Primer》、《C++ Primer Plus》(邮电出版社)等;

  2、一类问题如何通过编程进行解决。例如 C++ 中强调的“资源获取就是初
始化(resource acquisition is initialization)”就是一种主要的应用思想。
Bjanre 的《C++程序设计语言》就以这种方式介绍见长。而这些思想恰恰是大多
数著作所缺乏。

  当然以上1、2两种也有把问题抽象出来,成为“条条”再专门举例的书,例

如《Effective C++》、《More Effective C++》等,作为参考亦可一读。

  3、软件工程方法。C++教科书不是软件工程方法的专著,因此,抽象谈方法
的书不在此列。而与 C++ 比较联系紧密的就是最近机械工业出版社的《C++精髓
——软件工程方法》(Victor Shtern),这本书在 C++ 的基础上重点谈方法,也
比较系统,我认为比“条条”式的书更有价值。

  显然,学习也是一个从爬到走,从走到跑的过程。循序渐进是一个无法逾越
的规律,只能通过更多的努力来更快地接近目标。因此,初学者可以考虑把学习
语言本身作为开始的重点,而高级的编程思想可以同时进行穿插。

--

�手中握住繁� 心情�也�得荒� 才��世上一切都��幻  
�青春剩下日� ��就要�成白� 不�的只有那首歌  在心中�回的唱 


※ 来源:・BBS 水木清华站 smth.edu.cn・[FROM: 211.150.200.5]

【存档】【转载】 C++ 书籍导读(4) - 选择书的基本原则(3)

看纸书还是电子书
----------------

  如果你要认真学习 C++,手里有一、两本比较经典的印刷的书是很必要的。
电子版本的阅读很不方便,只能做个参考。如果要通读全书,如果有人能挺着看
下来,一定会影响健康。

  不要哭穷。如果你想学 C++, 别说85块,就是128块钱我看再穷的学生也买
得起,打工的地方有的是,少抽点烟、少喝一点啤酒、开源节流的方法很多,体
面的、不体面的,脑力的、体力的都可以。我见过一个要饭的在商场门口用一个
很破的音箱和卡拉OK伴奏磁带唱周华健的歌曲,一天下来可以买好几本 C++的书。

  如果大学生的本事都象孔乙己,还比不上要饭的,也趁早别学 C++。嫌贵,
那就勉强看英文电子版本的,效率、效果上都不可能和印刷的书相比。

  找电子书下载可以查 google。在本版提问不一定能得到答复。

  相比起教科书来,那些以“教条”方式介绍 C++编程注意事项的高级技巧和
概念解释,倒是可以以阅读电子书为主。这些东西系统性、连贯性不强,大部分
不需要反复查阅,看电子书可以省一些买书的钱。

--

�手中握住繁� 心情�也�得荒� 才��世上一切都��幻  
�青春剩下日� ��就要�成白� 不�的只有那首歌  在心中�回的唱 


※ 修改:・exbluesea 于 Oct 10 10:09:45 修改本文・[FROM:    61.149.28.20]
※ 来源:・BBS 水木清华站 smth.edu.cn・[FROM: 211.150.200.5]

【存档】【转载】 C++ 书籍导读(3) - 选择书的基本原则(2)

看编排的结构
------------

  大部分 C++的书是按照前文所述的学习步骤和内容顺序进行安排的。凡是有
所不同的地方,都会构成各自不同的特色。


  细心的人应该注意到,在 Bjarne Stroustrup 关于学习 C++ 就像学习一门
全新语言,不需要 C 的基础的影响下,大多数现代 C++ 的书都是按照这个精神
进行编排的,并且不止一本书号称“在第一章就介绍面向对象编程”、“尽量将
类的介绍放到更前面的章节”。

  应该说这种尝试被证明是有益的,特别是尽早介绍 C++ 程序框架, 有利于
摆脱 C的固有的习惯。这种精神也是国内著者所缺乏的,他们经常是固守教授语
法的做法,按照更加传统的顺序而忽略了 C++不同部分之间的联系。

  在主要的基本著作中,Bjarne Stroustrup 把面向对象编程和泛型编程组合
成了一个部分,类和模板分别介绍,突出的是如何进行抽象,是编程的思想;而
在 Lippman 的 C++ Primer 中,是以基于对象、面对对象编程为主线, 模板揉
到里面去了,更加注重面向对象这个体系。这种划分没有好坏之分,只是侧重有
所不同。

看程序样例的类型
----------------

  不同的教材都会采用程序样例,但是方法有所不同。

  大学教材采用连续样例的情况比较多,就是说,在下一章会提到上一章的例
子,并进行修改和发展。有些书的例子会持续好几章,乃至全书。这种书比较适
合系统阅读、连贯学习。在跳跃学习的时候就会有困难,因为经常为简单的例子
要查询前面的好几个章节。《C++语言程序设计》 ( James P.Cohoon, Jack W.
Davison: C++ Program Design (3rdEd) 就是这样的例子。

  而 BS 的 The C++ Programming Language 就是采用的每章独立、乃至每样
例独立的小例子,更适合跳跃地阅读、参考,以及不同语法或用法之间的比较。

  大学教程的例子一般还会更多地采用一些数据结构和算法的例子,这样做的
缺点是在阅读例子理解语法现象的同时,还必须读懂数据结构与程序的含义;优
点是锻炼程序阅读能力,并同时增长数据结构方面的知识,之后再学习 STL就会
有一定的基础。而且降低阅读速度,加强每个例子的理解对提高扎实的程度有益
处。

  而普适性的一般读物,如 Lippman 的 C++ Primer就会偏向使用更简单的例
子。读者应该在其中的优劣中进行权衡。

看原著还是译著
--------------

  我们随后将逐一进行介绍的书籍,翻译的质量都是上乘的。但这不排除每本
书在某些地方还可以进行推敲。为了这个,我到书店专门阅读了《C++编程思想》
第一版、第二板的译著,我认为这本书译著翻译质量差的传言是不可信的。

  绝大多数国内读者阅读C++ 著作的最佳选择是阅读译著,而不是原著。有很
多人宣称原著可以更清晰和精确地理解著作的含义,这个一般是要通过放慢阅读
和理解的速度为代价。据我的经验,在清华大学的本科学生中,能够长时间大篇
幅熟练阅读英文专业原著的是极少数,即使是那些终日与英语为友并准备考 GRE
的那些人,阅读 C++教科书还是有困难的。

  主张边看边提高英语能力的另当别论。除此之外,原著可以充当比较好的参
考和细节的对证。

大多数书只适合一类读者
----------------------

  C++ 的书有很强的专业性,一般来说只适合具有某种基础的一类读者。特别
是初学者和有较高基础的人,不可能同样适合阅读一本书。但是这句话也是相对
的,不排除有更聪明的人以更顽强的意志和努力去阅读。一般来说,这种阅读需
要自行查找更多的其他 C++资料,而最终的学习效果要更好。

  C++ 的好书数量并不多,以适合中高级读者的 BS 的 The C++ Programming
Language 和适合初中级读者的 Lippman 的 C++ Primer 为代表。基本不存在只
面向纯粹的初学者的 C++ 书籍。因为 C++ 就不是初级的东西。不要单纯以是否
适合初学者来选择书,还要看你的目标和学习的恒心、态度。如果你没有完整系
统地看过这些书,就没有必要买或者读那些“精华”、“提高”之类的东西;连
走都不行呢,就学跑步的花样。该走的步子一步也省不下来。

--

�手中握住繁� 心情�也�得荒� 才��世上一切都��幻  
�青春剩下日� ��就要�成白� 不�的只有那首歌  在心中�回的唱 

※ 修改:・exbluesea 于 Oct  9 13:05:30 修改本文・[FROM:   211.150.200.5]
※ 来源:・BBS 水木清华站 smth.edu.cn・[FROM: 211.150.200.5]

【存档】【转载】C++ 书籍导读(2) - 选择书的基本原则(1)

书的内容是否反映C++全貌
-----------------------

  我们这里讲的书都是指那些系统的教材,因此,反映C++ 的全貌是很重要的。
我们常见的 C++ 教材从内容上,可能包括下面的部分:
 
1、计算机与二进制基础知识;
2、C++ 基础语法; 
3、C++ 面相对象抽象机制; (OO - Object Oriented)
4、C++ 模板、泛型编程抽象机制; (GP - General Programming) 
5、C++ 标准模板库与数据结构/算法;(STL - Standard Template Library)
6、C++ 编程思想、编译问题与高级技巧;

例如 C++ 发明人 Bjarne Stroustrup 的 The C++ Programming Language 就是
包括 2-6,并以3-5 为主要内容,并综合介绍编程思想以及 C++各项功能的原理
的。

  这个原则可以帮助我们筛选掉一些不合格的、内容比较过时的书。很多国内
作者的书可能只包括1-3,或者4-5只占1、2章这样极少的篇幅,这样的书就属于
内容不全,可能造成重复购买。

书的内容是否详略得当
--------------------

  由于现代 C++的内容非常厚实,一般的 C++教科书的厚度都在3-4 厘米,五
号字排版,需要800-1200页。

  教材应该以教授目的为主,过于简略(大部分国内教材),失去细节,可能
造成学习者不能实际掌握;过于详细,会增加学习者的负担,在细节上耗费功夫。
后面我们会比较,例如 Deitel 父子一共出了很多本 C++的书,其中最厚的那本
就是细节过多,不适合于初学者阅读,而适合于中级读者再学习或参考使用。

  如果有一定基础,可以看看书的目录,看看书的各部分章节的配重。有些书
章节很全,但是 模板/STL 部分的比重很少,这样的书可能重点在前面,即类的
使用那部分。例如电子工业出版社的《C++语言程序设计》 ( James P.Cohoon, 
Jack W.Davison: C++ Program Design (3rdEd) 就是这样一本书, 而且这本书
比较详细地介绍了计算机知识和二进制的知识,因此属于入门书籍。

  再例如,大家熟悉的 C++ Primer (Stanley B.Lippman, Josee Lajioe: 
C++ Primer (3rdEd))是以上面 2-5 的内容为主的书,各部分篇幅相当,算是
一本中等难度的可以做参考书的一本教科书。

--

�手中握住繁� 心情�也�得荒� 才��世上一切都��幻  
�青春剩下日� ��就要�成白� 不�的只有那首歌  在心中�回的唱 


※ 来源:・BBS 水木清华站 smth.edu.cn・[FROM: 211.150.200.5]

【存档】【转载】C++ 书籍导读(1) - 引言

文本为水木清华BBS C++ 讨论区所作。欢迎转载,转载时请保留完整的标题
和作者信息。如需修改本文请致函:exbluesea@hotmail.com。作者 exbluesea。

  一直承诺为这个版的 C++初学者以及其他感兴趣的读者写这篇东西,深感困
难。一方面,我不可能通读所有的著作;另一方面,去评价诸位大师的著作总是
心感不安。好在可以换一个角度,从一个学习者、消费者的需要出发,来看看选
择书籍过程中所需要考虑的问题。

  很多的作者和大部分出版商都会声称自己的书适合你,甚至适合从初学者到
高级读者的所有人群,尽管理由可以头头是道,遗憾的是这是不可能的。不过本
文的观点也只代表一家之言,任何事情都不能绝对化,因此仅仅作为参考。

  要想选择一本适合自己读的书,第一步最好是要对你自己的情况以及 C++本
身有所了解。这听上去好像是要取锁在屋里的钥匙。不过,如果你不认识钥匙是
什么样子的,即使你进了屋子也白搭。

学前动员

  在动员之前,我还是想泼一下冷水。C++ 可是目前大多数通用编程语言中最
难学的一个。如果应付一时只需或希望有很快的上手,Visual Basic、Java可能
会是更好的选择。掌握他们也很可以在公司找到差使,甚至如果你看些资料,满
口英文,还可以混到一个不错的职位。

  至于 C++和其他语言的比较,我们准备另出 FAQ。我只想说的是,C++ 像一
个健壮和智慧的男子,学习和掌握他,你可以像他一样健壮和智慧。

学前准备

  初学者的情况会比较复杂,知识掌握的程度参差不齐。我认为在学习一门计
算机语言之前,特别是你如果要学习 C++的话,应当对计算机的基础知识有所了
解,包括 CPU、指令系统、存储器、虚拟存储器、二进制与十六进制数字、操作
系统等。这些知识也可以随 C++的学习而渐进,但是不掌握这些知识对运用 C++
会有很大的障碍。特别是那些没有接触过编程的人,要特别注意这一点。

  另外,应该清楚编一个完整的程序实际上要和四个东西打交道: 1、语言本
身; 2、语言的开发工具; 3、操作系统的应用程序接口(API);  4、应用领域
的应用程序接口。例如,编写一个收取邮件的程序,我们可以完整地描述为:

  我“用 C++ 语言”“使用 Microsoft Visual C++ 7.0开发工具”
“在 Microsoft Win32平台(NT/2000/xp)上”“使用Winsock API” 开发一个邮
件收取程序。

  C++ 是一个编译语言,就是说,书写的 C++源程序,需要经过编译器等工具
进行编译、连接,变成操作系统能够使用的可执行文件,程序才能运行。常见的
编译器包括Windows 下常用的 Microsoft C++,以及 Unix/Linux 下常用的g++;
源程序编辑器、编译器、连接调试工具经常组合在一起形成一个产品,提供更方
便的开发环境(IDE),例如 Microsoft Visual C++ 和 Dev C++等。

  学习 C++还需要了解常用数据结构的概念,包括向量、队列、表、树,以及
时间复杂度、空间复杂度等,因为C++ 的标准库就会经常和这些东西打交道。

  C++ 从发明至今已经有十几年的历史,可以说历史上大约有两次 C++的市场
高峰,一个是 C++面世不久,Microsoft/Borland 推出了自己的 C++产品,特别
是大家熟知的TC/BC++ 3.x;另一个高峰就是 1998年 C++的ANSI标准通过后直到
今天,C++ 的应用得到空前的推广和普及。我要学习的现代 C++就是指符合ANSI
标准的 C++,而不是早期的 C++。

学习步骤

  学习C++ 本身大致分为 5 个步骤:

  不管 C 语言的 C90 版本如何,我们仍然可以说,C++ 的单句语法是基本继
承了 C 的单句语法。学习 C++ 的第一步是掌握单句语法,包括变量、表达式、
条件转移、循环语句、指针等;

  第二步是学习 C++的面向对象的抽象机制,包括类、类的派生和继承、多态
等。早期的 C++ 大致就是这些了;

  第三步是学习 C++的泛型编程的抽象机制,包括类和函数的模板。这个是早
期 C++所不具有或不完备的;

  第四步是学习 C++标准模板库(STL) 的使用。把库提高到语言的高度,说明
了STL 的重要程度。这个是前人经验的总结,熟练使用 STL,实际上能够把编程
的效率提高一个档次;

  第五步可以穿插在上述四个步骤中,就是学习和掌握 C++的高级特性,包括
异常、运行时刻类型机制、操作系统API的使用、线程和进程以及其他使用技巧。

学习过程

  初学者本身的情况实际上就是学习的起点;

  还应该为自己设立一个目标,至少是一个里程碑,是希望对 C++有所了解呢,
还是希望成为一个 C++高手;以及希望在哪些方面有所特长?

  有了起点和目标,决定学习时间长短的就是你的能力和付出的努力了。大致
的说,学过其他编程语言的,粗粗学完第二步大约只需要1-2个月,即可上手甚
至编写一些复杂的东西,而比较精细和完整地掌握大部分东西,可能需要至少一
年时间甚至更长。

  弹性之大完全是因为每个人的学习情况完全不同,格外的努力和聪明、格外
的懒散和笨拙,对学习时间都和结果都影响很大。

书籍介绍

  随后的书籍介绍大致会按照:书籍本身介绍的摘录、大致评价、适用者以及
比较、采购等几个方面来进行。新书会层出不穷,本系列也随之更新。

--

�手中握住繁� 心情�也�得荒� 才��世上一切都��幻  
�青春剩下日� ��就要�成白� 不�的只有那首歌  在心中�回的唱 


※ 修改:・exbluesea 于 Oct 10 10:07:43 修改本文・[FROM:    61.149.28.20]
※ 来源:・BBS 水木清华站 smth.edu.cn・[FROM: 211.150.200.5]

深夜随笔

草草看完一些数学资料,打印了一些东东。想到itgirl提供的帮助,不禁窃喜。

不过心里还是有些阴影。随即和skydoom聊了聊。

skydoom和RoachCock提出了一个相同的问题:看你做什么了。

我到底是什么领域的呢?

翻看最近糟蹋的DXUT代码,悲叹良久。

我的确看不出花出去的时间到底会有什么收获,于是导致什么都干不好?

从Windows API到DXUT,我是受了Mac OSX的影响,觉得Ribbon比健壮的功能有效吗?

想不清楚到底在干什么,应该做什么。

skydoom建议我去看看精华区,果不其然,发现了exbluesea的文章。


相见恨晚。

一切如行云流水,相当的自由,而又道出真谛——原来我一直不解的迷惑的,都是他早说过的。

后来才知道exbluesea原来是潘爱民老师。

热血沸腾得读完,留下他当年的qmd留念:

�手中握住繁� 心情�也�得荒� 才��世上一切都��幻
�青春剩下日� ��就要�成白� 不�的只有那首歌  在心中�回的唱









2010年8月4日星期三

2010年8月3日星期二

DXUT......�

All of the DXUT controls work similarly to Windows controls. They are implemented entirely from scratch and do not use HWND or any Windows control underneath. They are also rendered with Direct3D, and therefore can be used by both windowed and full screen Direct3D applications.


恩。。。。拿到DirectX SDK,还以为就是这样就开始了,没想到比Win32 SDK还要复杂N倍。DXUT是一个"简单"的轮子,包括基本的DXUT GDI, DXUT Sound, DXUT 3D/2D功能。


开始还以为一而且都要从新开始。当我无法理解为什么在引用d3d9.h为啥会出怪怪的问题。当打开CDXUTDialog的定义才看到,大概DXUT GDI的类定义有1341行。所有实现估计要上万行了。


文档显示,DXUT GDI能响应的事件有

Event Callback

Certain events happen as the user interacts with the UI controls, such as checking or unchecking a check box, selecting a new item in a combo box, selecting a new item in a radio button group, etc. The application may be interested in such events, and it can be notified with the CDXUTDialog event callback mechanism. In the sample, a callback function, OnGUIEvent, is defined and passed as the parameter to the CDXUTDialog::SetCallback method. As a result, this function will get called whenever the user performs an interesting action with a UI control. The actions that can trigger a callback are:

  • Clicking a button (CDXUTButton)

  • Selecting a new item in a combo box (CDXUTComboBox)

  • Selecting a new item in a radio button group (CDXUTRadioButton)

  • Changing the check state of a check box (CDXUTCheckBox)

  • Changing the value of a slider (CDXUTSlider)

  • Pressing Enter in an edit box (CDXUTEditBox and CDXUTIMEEditBox)

  • In the callback, the type of event, the ID of the control that fired the event, and the control object are available to the application. The sample responds to the callback by retrieving content of the firing control and displaying it on screen.



也就是说,需要更多的功能只能自己车轮子了。

网易的风云车出了不少轮子,一统国内游戏界。俺先搞明白M$的轮子是怎么造的吧


�。睡了一觉,舒服多了,又要看这些张牙舞爪的定义。





2010年8月2日星期一

zz【存档】对不起 我是程序员

有一天,一个男人穿越森林的时候,听到一个细微的声音叫住他。他低头一看,是一只青蛙。  "如果你亲我一下,我会变成一个美丽的公主哦。"男人一言不发,把青蛙捡起来,放入口袋。  "如果你亲我一下,我会变成一个美丽的公主哦。而且,我会告诉我遇到的每一个人,你是多么聪明和勇敢,你是我的英雄。"男人把青蛙拿出来,对着它微微一笑,又把它放回口袋。  "如果你亲我一下,我会变成一个美丽的公主,然后我愿意成为你的爱人一星期。"男人又把青蛙拿出来,对着它微微一笑,把它放回口袋。  "如果你亲我一下,我会变成一个美丽的公主,然后我愿意成为你的爱人一年,而且你可以对我做任何事。"再一次,男人把青蛙拿出来,对着它微微一笑,又把它放回口袋。  最后,青蛙无力地问:"我开出了这么好的条件,为什么你还不肯吻我?"   男人说:"我是一个程序员,我可没时间和什么公主鬼混。不过,拥有一个会说话的青蛙,倒是蛮酷的。"


2010年8月1日星期日

EmptyProject? BullShit!!!


真没人性。。。。。。

 

见过恶心的,没见过这么恶心的

 

 

//--------------------------------------------------------------------------------------

// File: EmptyProject.cpp

//

// Copyright (c) Microsoft Corporation. All rights reserved.

//--------------------------------------------------------------------------------------

#include "DXUT.h"

#include "resource.h"

 

 

//--------------------------------------------------------------------------------------

// Rejects any D3D9 devices that aren't acceptable to the app by returning false

//--------------------------------------------------------------------------------------

bool CALLBACK IsD3D9DeviceAcceptable( D3DCAPS9* pCaps, D3DFORMAT AdapterFormat, D3DFORMAT BackBufferFormat,

                                      bool bWindowed, void* pUserContext )

{

    // Typically want to skip back buffer formats that don't support alpha blending

    IDirect3D9* pD3D = DXUTGetD3D9Object();

    if( FAILED( pD3D->CheckDeviceFormat( pCaps->AdapterOrdinal, pCaps->DeviceType,

                                         AdapterFormat, D3DUSAGE_QUERY_POSTPIXELSHADER_BLENDING,

                                         D3DRTYPE_TEXTURE, BackBufferFormat ) ) )

        return false;

 

    return true;

}

 

 

//--------------------------------------------------------------------------------------

// Before a device is created, modify the device settings as needed

//--------------------------------------------------------------------------------------

bool CALLBACK ModifyDeviceSettings( DXUTDeviceSettings* pDeviceSettings, void* pUserContext )

{

    return true;

}

 

 

//--------------------------------------------------------------------------------------

// Create any D3D9 resources that will live through a device reset (D3DPOOL_MANAGED)

// and aren't tied to the back buffer size

//--------------------------------------------------------------------------------------

HRESULT CALLBACK OnD3D9CreateDevice( IDirect3DDevice9* pd3dDevice, const D3DSURFACE_DESC* pBackBufferSurfaceDesc,

                                     void* pUserContext )

{

    return S_OK;

}

 

 

//--------------------------------------------------------------------------------------

// Create any D3D9 resources that won't live through a device reset (D3DPOOL_DEFAULT) 

// or that are tied to the back buffer size 

//--------------------------------------------------------------------------------------

HRESULT CALLBACK OnD3D9ResetDevice( IDirect3DDevice9* pd3dDevice, const D3DSURFACE_DESC* pBackBufferSurfaceDesc,

                                    void* pUserContext )

{

    return S_OK;

}

 

 

//--------------------------------------------------------------------------------------

// Handle updates to the scene.  This is called regardless of which D3D API is used

//--------------------------------------------------------------------------------------

void CALLBACK OnFrameMove( double fTime, float fElapsedTime, void* pUserContext )

{

}

 

 

//--------------------------------------------------------------------------------------

// Render the scene using the D3D9 device

//--------------------------------------------------------------------------------------

void CALLBACK OnD3D9FrameRender( IDirect3DDevice9* pd3dDevice, double fTime, float fElapsedTime, void* pUserContext )

{

    HRESULT hr;

 

    // Clear the render target and the zbuffer 

    V( pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, D3DCOLOR_ARGB( 0, 45, 50, 170 ), 1.0f, 0 ) );

 

    // Render the scene

    if( SUCCEEDED( pd3dDevice->BeginScene() ) )

    {

        V( pd3dDevice->EndScene() );

    }

}

 

 

//--------------------------------------------------------------------------------------

// Handle messages to the application 

//--------------------------------------------------------------------------------------

LRESULT CALLBACK MsgProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam,

                          bool* pbNoFurtherProcessing, void* pUserContext )

{

    return 0;

}

 

 

//--------------------------------------------------------------------------------------

// Release D3D9 resources created in the OnD3D9ResetDevice callback 

//--------------------------------------------------------------------------------------

void CALLBACK OnD3D9LostDevice( void* pUserContext )

{

}

 

 

//--------------------------------------------------------------------------------------

// Release D3D9 resources created in the OnD3D9CreateDevice callback 

//--------------------------------------------------------------------------------------

void CALLBACK OnD3D9DestroyDevice( void* pUserContext )

{

}

 

 

//--------------------------------------------------------------------------------------

// Initialize everything and go into a render loop

//--------------------------------------------------------------------------------------

INT WINAPI wWinMain( HINSTANCE, HINSTANCE, LPWSTR, int )

{

    // Enable run-time memory check for debug builds.

#if defined(DEBUG) | defined(_DEBUG)

    _CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );