有关c++一篇不错的文章

上传人:mg****85 文档编号:34169064 上传时间:2018-02-21 格式:DOC 页数:20 大小:75KB
返回 下载 相关 举报
有关c++一篇不错的文章_第1页
第1页 / 共20页
有关c++一篇不错的文章_第2页
第2页 / 共20页
有关c++一篇不错的文章_第3页
第3页 / 共20页
有关c++一篇不错的文章_第4页
第4页 / 共20页
有关c++一篇不错的文章_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《有关c++一篇不错的文章》由会员分享,可在线阅读,更多相关《有关c++一篇不错的文章(20页珍藏版)》请在金锄头文库上搜索。

1、FAQ C+ 书籍导读(1) - 引言 一直承诺为这个版的 C+初学者以及其他感兴趣的读者写这篇东西,深感困难。一方面,我不可能通读所有的著作;另一方面,去评价诸位大师的著作总是心感不安。好在可以换一个角度,从一个学习者、消费者的需要出发,来看看选择书籍过程中所需要考虑的问题。 很多的作者和大部分出版商都会声称自己的书适合你,甚至适合从初学者到高级读者的所有人群,尽管理由可以头头是道,遗憾的是这是不可能的。不过本文的观点也只代表一家之言,任何事情都不能绝对化,因此仅仅作为参考。 要想选择一本适合自己读的书,第一步最好是要对你自己的情况以及 C+本身有所了解。这听上去好像是要取锁在屋里的钥匙。不

2、过,如果你不认识钥匙是什么样子的,即使你进了屋子也白搭。学前动员 在动员之前,我还是想泼一下冷水。C+ 可是目前大多数通用编程语言中最难学的一个。如果应付一时只需或希望有很快的上手,Visual Basic、Java 可能会是更好的选择。掌握他们也很可以在公司找到差使,甚至如果你看些资料,满口英文,还可以混到一个不错的职位。 至于 C+和其他语言的比较,我们准备另出 FAQ。我只想说的是,C+ 像一个健壮和智慧的男子,学习和掌握他,你可以像他一样健壮和智慧。学前准备 初学者的情况会比较复杂,知识掌握的程度参差不齐。我认为在学习一门计算机语言之前,特别是你如果要学习 C+的话,应当对计算机的基础

3、知识有所了解,包括 CPU、指令系统、存储器、虚拟存储器、二进制与十六进制数字、操作系统等。这些知识也可以随 C+的学习而渐进,但是不掌握这些知识对运用 C+会有很大的障碍。特别是那些没有接触过编程的人,要特别注意这一点。 另外,应该清楚编一个完整的程序实际上要和四个东西打交道: 1、语言本身; 2、语言的开发工具; 3、操作系统的应用程序接口(API); 4、应用领域的应用程序接口。例如,编写一个收取邮件的程序,我们可以完整地描述为: 我“用 C+ 语言”“使用 Microsoft Visual C+ 7.0 开发工具”“在 Microsoft Win32 平台(NT/2000/xp)上”“

4、使用 Winsock API” 开发一个邮件收取程序。C+ 是一个编译语言,就是说,书写的 C+源程序,需要经过编译器等工具进行编译、连接,变成操作系统能够使用的可执行文件,程序才能运行。常见的编译器包括 Windows 下常用的 Microsoft C+,以及 Unix/Linux 下常用的g+;源程序编辑器、编译器、连接调试工具经常组合在一起形成一个产品,提供更方便的开发环境(IDE),例如 Microsoft Visual C+ 和 Dev C+等。 学习 C+还需要了解常用数据结构的概念,包括向量、队列、表、树,以及时间复杂度、空间复杂度等,因为 C+ 的标准库就会经常和这些东西打交道

5、。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+ 的第一步是掌握单句语法,包括变量、表达式、条件转移、循环语句、

6、指针等; 第二步是学习 C+的面向对象的抽象机制,包括类、类的派生和继承、多态等。早期的 C+ 大致就是这些了; 第三步是学习 C+的泛型编程的抽象机制,包括类和函数的模板。这个是早期 C+所不具有或不完备的; 第四步是学习 C+标准模板库(STL) 的使用。把库提高到语言的高度,说明了 STL 的重要程度。这个是前人经验的总结,熟练使用 STL,实际上能够把编程的效率提高一个档次; 第五步可以穿插在上述四个步骤中,就是学习和掌握 C+的高级特性,包括异常、运行时刻类型机制、操作系统 API 的使用、线程和进程以及其他使用技巧。学习过程 初学者本身的情况实际上就是学习的起点; 还应该为自己设立

7、一个目标,至少是一个里程碑,是希望对 C+有所了解呢,还是希望成为一个 C+高手;以及希望在哪些方面有所特长? 有了起点和目标,决定学习时间长短的就是你的能力和付出的努力了。大致的说,学过其他编程语言的,粗粗学完第二步大约只需要 12 个月,即可上手甚至编写一些复杂的东西,而比较精细和完整地掌握大部分东西,可能需要至少一年时间甚至更长。 弹性之大完全是因为每个人的学习情况完全不同,格外的努力和聪明、格外的懒散和笨拙,对学习时间都和结果都影响很大。书籍介绍 随后的书籍介绍大致会按照:书籍本身介绍的摘录、大致评价、适用者以及比较、采购等几个方面来进行。新书会层出不穷,本系列也随之更新。FAQ C+

8、 书籍导读(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 Strou

9、strup 的 The C+ Programming Language 就是括 2-6,并以 3-5 为主要内容,并综合介绍编程思想以及 C+各项功能的原理的。 这个原则可以帮助我们筛选掉一些不合格的、内容比较过时的书。很多国内作者的书可能只包括 1-3,或者 4-5 只占 1、2 章这样极少的篇幅,这样的书就属于内容不全,可能造成重复购买。书的内容是否详略得当- 由于现代 C+的内容非常厚实,一般的 C+教科书的厚度都在 3-4 厘米,五号字排版,需要 800-1200 页。 教材应该以教授目的为主,过于简略(大部分国内教材),失去细节,可能造成学习者不能实际掌握;过于详细,会增加学习者的负

10、担,在细节上耗费功夫。后面我们会比较,例如 Deitel 父子一共出了很多本 C+的书,其中最厚的那本就是细节过多,不适合于初学者阅读,而适合于中级读者再学习或参考使用。 如果有一定基础,可以看看书的目录,看看书的各部分章节的配重。有些书章节很全,但是 模板/STL 部分的比重很少,这样的书可能重点在前面,即类的使用那部分。例如电子工业出版社的C+语言程序设计 ( James P.Cohoon, Jack W.Davison: C+ Program Design (3rdEd) 就是这样一本书, 而且这本书比较详细地介绍了计算机知识和二进制的知识,因此属于入门书籍。 再例如,大家熟悉的 C+

11、Primer (Stanley B.Lippman, Josee Lajioe: C+ Primer (3rdEd))是以上面 25 的内容为主的书,各部分篇幅相当,算是一本中等难度的可以做参考书的一本教科书。FAQ C+ 书籍导读(3) - 选择书的基本原则(2) 看编排的结构- 大部分 C+的书是按照前文所述的学习步骤和内容顺序进行安排的。凡是有所不同的地方,都会构成各自不同的特色。 细心的人应该注意到,在 Bjarne Stroustrup 关于学习 C+ 就像学习一门全新语言,不需要 C 的基础的影响下,大多数现代 C+ 的书都是按照这个精神进行编排的,并且不止一本书号称“在第一章就介

12、绍面向对象编程”、“尽量将类的介绍放到更前面的章节”。 应该说这种尝试被证明是有益的,特别是尽早介绍 C+ 程序框架, 有利于摆脱 C 的固有的习惯。这种精神也是国内著者所缺乏的,他们经常是固守教授语法的做法,按照更加传统的顺序而忽略了 C+不同部分之间的联系。 在主要的基本著作中,Bjarne Stroustrup 把面向对象编程和泛型编程组合成了一个部分,类和模板分别介绍,突出的是如何进行抽象,是编程的思想;而在 Lippman 的 C+ Primer 中,是以基于对象、面对对象编程为主线, 模板揉到里面去了,更加注重面向对象这个体系。这种划分没有好坏之分,只是侧重有所不同。看程序样例的类

13、型- 不同的教材都会采用程序样例,但是方法有所不同。 大学教材采用连续样例的情况比较多,就是说,在下一章会提到上一章的例子,并进行修改和发展。有些书的例子会持续好几章,乃至全书。这种书比较适合系统阅读、连贯学习。在跳跃学习的时候就会有困难,因为经常为简单的例子要查询前面的好几个章节。C+语言程序设计 ( James P.Cohoon, Jack W.Davison: C+ Program Design (3rdEd) 就是这样的例子。 而 BS 的 The C+ Programming Language 就是采用的每章独立、乃至每样例独立的小例子,更适合跳跃地阅读、参考,以及不同语法或用法之间

14、的比较。 大学教程的例子一般还会更多地采用一些数据结构和算法的例子,这样做的缺点是在阅读例子理解语法现象的同时,还必须读懂数据结构与程序的含义;优点是锻炼程序阅读能力,并同时增长数据结构方面的知识,之后再学习 STL 就会有一定的基础。而且降低阅读速度,加强每个例子的理解对提高扎实的程度有益处。 而普适性的一般读物,如 Lippman 的 C+ Primer 就会偏向使用更简单的例子。读者应该在其中的优劣中进行权衡。看原著还是译著- 我们随后将逐一进行介绍的书籍,翻译的质量都是上乘的。但这不排除每本书在某些地方还可以进行推敲。为了这个,我到书店专门阅读了C+编程思想第一版、第二板的译著,我认为

15、这本书译著翻译质量差的传言是不可信的。 绝大多数国内读者阅读 C+ 著作的最佳选择是阅读译著,而不是原著。有很多人宣称原著可以更清晰和精确地理解著作的含义,这个一般是要通过放慢阅读和理解的速度为代价。据我的经验,在清华大学的本科学生中,能够长时间大篇幅熟练阅读英文专业原著的是极少数,即使是那些终日与英语为友并准备考 GRE 的那些人,阅读 C+教科书还是有困难的。 主张边看边提高英语能力的另当别论。除此之外,原著可以充当比较好的参考和细节的对证。大多数书只适合一类读者-C+ 的书有很强的专业性,一般来说只适合具有某种基础的一类读者。特别是初学者和有较高基础的人,不可能同样适合阅读一本书。但是这句话也是相对的,不排除有更聪明的人以更顽强的意志和努力去阅读。一般来说,这种阅读需要自行查找更多的其他 C+资料,而最终的学习效果要更好。C+ 的好书数量并不多,以适合中高级读者的 BS 的 The C+ ProgrammingLanguage 和适合初中级读者的 Lippman 的 C+ Primer 为代表。基本不存在只面向纯粹的初学者的 C+ 书籍。因为 C+ 就不是初

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号