实用C++程序设计
基本信息
- 原书名: Practical C++ Programming
- 原出版社: o'reilly
- 作者: Steve Oualline [作译者介绍]
- 译者: 鄢爱兰 周丽琴
- 丛书名: O'REILLY系列
- 出版社:中国电力出版社
- ISBN:7508314115
- 上架时间:2004-6-22
- 出版日期:2004 年6月
- 开本:16开
- 页码:570
- 版次:1-1
- 所属分类:
计算机 > 软件与程序设计 > C++ > C++
合作专区 > 微软技术图书 > 微软程序设计 > 微软C/C++/VC++
编辑推荐
本书面向那些以前没有编程经验的人、了解C并想更新到C++的程序员,以及那些了解C++并想改善编程风格和可靠性的人。你应该有一台计算机,并知道如何使用像文本编辑器和文件系统这样的基本功能。
学习计算机语言最好的途径是编写和调试程序。凌晨两点还在琢磨一个有故障的程序,只是为了找出你在应该键入==的地方键入了=,这是一种非常有效的教学手段。本书包含许多有关常见编程错误的例子(它们在书中被标记为有故障的程序)。
内容简介回到顶部↑
本书语言朴素,内容深入浅出,不仅讲述了C++语言的结构,并且涉及到编程的各个方面,包括编程风格、软件工程、程序设计、面向对象设计和程序调试,着重强调了编程风格。每章根据讲述的内容附有一定数量的编程练习,有助于确保掌握每章内容。
本书不要求读者具备编程经验,从头教授怎样编程,以便培养读者良好的编程风格,但是有经验的程序员也可以从本书受益匪浅。
本书不要求读者具备编程经验,从头教授怎样编程,以便培养读者良好的编程风格,但是有经验的程序员也可以从本书受益匪浅。
目录回到顶部↑
前言
第一部分 基础知识
第一章 什么是c++?
c++简史
c++的组织结构
如何学习c++
第二章 编程基础
程序从概念到执行
创建实际的程序
在unix中获得帮助
在ide中获得帮助
编程练习
第三章 风格
注释
c++代码
命名风格
编写代码的信仰
缩排和代码格式
清晰
简单
第一部分 基础知识
第一章 什么是c++?
c++简史
c++的组织结构
如何学习c++
第二章 编程基础
程序从概念到执行
创建实际的程序
在unix中获得帮助
在ide中获得帮助
编程练习
第三章 风格
注释
c++代码
命名风格
编写代码的信仰
缩排和代码格式
清晰
简单
前言回到顶部↑
本书专门讲述实用C++编程。不仅涉及语言的结构,还讲述编程的风格和程序调试。讨论了程序的整个生命周期,包括构思、设计、编写、调试、发布、维护和修订。本书着重强调了风格。编写一个好的程序不仅仅涉及键入代码。编程是一门艺术,编写代码和程序设计的技巧混合形成一个杰作。编写得好的程序不仅能正确地完成功能,也是简单并易于理解的。注释让程序员在其程序中包含描述性文本。清晰编写、良好注释的程序是受高度推崇的。程序应该尽可能简单。要避免使用一些聪明的技巧,聪明和复杂性是程序的死敌。本书强调简单实用规则。例如,C++中的15个操作符优先规则可以简化成2个规则: 1. 乘除优先于加减。 2. 将其他东西都用括号括住。我们来考虑两个程序。一个由聪明的程序员编写,使用了所有的技巧。该程序未包含注释,但是能够工作。另一个程序加了很好的注释,并且结构良好,但是不能工作。哪个程序更有用?从长远来看,这个“不能工作的”程序更有用,因为它可以容易地修改和维护。尽管那个聪明的程序能够工作,迟早它必须进行修改。修改聪明的程序是一件最伤脑筋的工作。本书适用范围本书面向那些以前没有编程经验的人、了解C并想更新到C++的程序员,以及那些了解C++并想改善编程风格和可靠性的人。你应该有一台计算机,并知道如何使用像文本编辑器和文件系统这样的基本功能。 学习计算机语言最好的途径是编写和调试程序。凌晨两点还在琢磨一个有故障的程序,只是为了找出你在应该键入==的地方键入了=,这是一种非常有效的教学手段。本书包含许多有关常见编程错误的例子(它们在书中被标记为有故障的程序)。鼓励你在自己的机器上键入这些程序,然后再运行并调试。这一过程使用简短的程序向你介绍一些常见的错误,所以你就可以在你自己较大的程序中找出并纠正这类错误。 (本前言的后面有关于获取本书中的程序的副本的指示。) 下面是C++的一些方言: l 应该可以运行于多数Unix系统上的“一般”Unix编译器。 l GNU C++编译器,叫做g++ (对多数Unix系统可用)。 l 针对MS-DOS/Windows的Borland C++。 l 针对MS-DOS/Windows的Microsoft's Visual C++。在讨论标准C++时,各种编译器之间只有很小的差异。本书清楚地指明编译器差异在哪里可以影响程序员。给出了特定的指示,用于产生和运行使用每种编译器的程序。本书还给出了使用编程工具的例子,这些工具有助于自动生成程序。本书是如何组织的在学会走路之前必须会爬。在第一部分中,就学习如何“爬”。这些章节足够教会你编写非常简单的程序。首先从编程的结构和编程风格开始,接下来学习如何使用变量和非常简单的判断和控制语句。此时,你已经学习了足够的知识来创建非常简单的程序,因此,在第七章“编程过程”中开始一个完整的编程过程,向你展示实际的程序是如何创建的。 l 第一章“什么是C++?”,给出C++的一个概览,描述它的历史和使用,并解释该语言是如何组织的。 l 第二章“程序编写的基础”,解释基本的编程过程,并给出有关编写一个非常简单的程序的足够信息。 l 第三章“风格”,讨论编程风格。介绍如何给程序加注释,以及如何编写清晰简单的代码。 l 第四章“基本声明和表达式”,介绍简单的C++语句。详细介绍了基本的变量和赋值语句,以及算术操作符:+, -, *, / 和 %。 l 第五章“数组、限定符和读数据”,介绍数组和一些更复杂的变量。还描述了简写操作符++, --, *=, =, +=, -=, /= 和 %=。 l 第六章“判断和控制语句”,解释简单的判断语句,包括if, else和for。还讨论了关于 == 与 = 的问题。 l 第七章“编程过程”,带你经历创建一个简单的程序所需的各个步骤,从规范到发布。还讨论了快速原型和调试。第二部分“简单编程”,描述编程会用到的所有其他简单语句和操作符。还学习了如何将这些语句组织到简单的函数中。 l 第八章“更多控制语句”,描述附加的控制语句。包括while, break和continue。还详细讨论了switch语句。 l 第九章“变量的作用域和函数”,介绍局部变量、名称空间、函数和参数。 l 第十章“C++预处理器”,描述C++预处理器,预处理器在创建代码中给予你很大的灵活性。还提供了大量的方法,你可以因此而振作起来。还描述了避免使预处理器成为问题的简单规则。 l 第十一章“位操作”,讨论针对位执行的C++逻辑操作符。在第三部分“高级的类型和类”中,学习一些基本声明和语句如何用于像结构、联合和类这些高级类型的构造中。还学习了有关指针的概念。 l 第十二章“高级类型”,解释结构和其他高级类型。还介绍了sizeof操作符和enum类型。 l 第十三章“简单类”,介绍类的概念。这是C++很多强大特性中的其中一种。类允许你将数据和可以在这些数据上执行的操作成组到一个对象中。 l 第十四章“类的其他知识”,描述可以对类执行的附加操作。 l 第十五章“简单指针”,介绍C++指针变量及其一些用法。第四部分“高级编程概念”中探索了一些高级的编程技术。在这一部分中,探索了大量C++特性,你可以利用这些特性来创建复杂的易于使用的对象或类。 l 第十六章“文件输入/输出”,描述缓冲的和非缓冲的输入/输出(I/O)。讨论了ASCII文件和二进制文件,以及如何构造一个简单的文件。还介绍了老式的C风格I/O操作。 l 第十七章“调试和优化”,描述如何调试程序以及如何使用交互式的调试器。不仅介绍如何调试程序,还讲述如何编写易于调试的程序。本章还描述了许多优化技术,以使得程序运行得更快更有效。 l 第十八章“操作符重载”,解释C++允许通过为语言的操作符定义附加的含义来扩展语言。在本章中,你将创建一个复杂的类型和在该类型上执行的操作符。 l 第十九章“浮点数”,使用一个简单的十进制浮点数格式来引入使用浮点数时常会出现的问题,比如舍入错误、精确度损失、上溢和下溢。 l 第二十章“高级指针”,描述指针的高级用法,以构造像链表和树这样的动态结构。 l 第二十一章“高级类”,讲述如何从简单的基本的类建立复杂的派生的类。第五部分“其他语言特性”中描述了几个其他特性。 l 第二十二章“异常”,解释如何处理程序中意外的条件。 l 第二十三章“模块化编程”,讲述如何将一个程序分解成几个文件,以及如何使用模块化的编程技术。还详细解释了实用工具make。 l 第二十四章“模板”,允许你定义一个泛型函数或类,以产生一系列函数。 l 第二十五章“标准模板库”,描述C++所带的模板库。该库由许多“容器模板”和相关数据组成,它让你只要做很少的工作就可以创建非常复杂而强壮的数据结构。 l 第二十六章“程序设计”,讨论用于设计程序的一些方法学,比如结构化的编程和面向对象设计。不仅讨论了设计方法,还介绍了一些有关程序设计的推理。 l 第二十七章“完整的开发过程”,详细介绍一个复杂程序从构思到完成所需的各个步骤。着重讲述了信息隐藏、模块化编程技术以及面向对象编程。 l 第二十八章“从C到C++”,描述如何将C代码转换成C++代码,并揭示了许多潜伏在C代码中捆扰C++程序员的陷阱。 l 第二十九章“C++遗忘的角落”,描述了很少使用的do/while语句、逗号操作符和 ?: 操作符。 l 第三十章“编程格言”,列出一些有助于你构造好的C++程序的编程格言。第六部分“附录”包含附加的C++参考信息。 l 附录A“ASCII表”,包含一系列字符代码及其值。 l 附录B“范围”,列出一些C++变量类型的数值范围。 l 附录C“操作符优先规则”,列出决定操作符计算次序的规则。 l 附录D“使用幂级数计算正弦值”,包含一个程序,该程序展示计算机如何计算正弦函数的值。 l 附录E“资源”,列出本书提到的编程资源方面的信息。如果具备C知识该如何阅读本书 C++是建立在C语言之上的。如果你了解C,就会发现第二章到第十二章的许多内容你都熟悉。 C++也在C的基础上引入了大量新的小小的改进,包括: l 一个全新的I/O系统(基础知识在第四章“基本声明和表达式”中讲述。新的文件系统在第十六章“文件输入/输出”中详细讨论)。 l 常量和引用变量(在第五章“数组、限定符和读数据”中描述)。 l 函数重载、内联函数、引用参数和默认参数(请阅读第九章“变量作用域和函数”)。所以你可以将C++当作更好的C来使用。但是C++还增加了一些全新的特性,比如对象、模板和异常。所以从第十三章“简单类”开始,就会学习一些全新的概念。字体约定本书使用了以下约定:斜体(italic) 用于目录,以及第一次引入新的术语和概念时表示强调。还用于突出例子中的注释。粗体(bold) 用于C++关键字。等宽字体(constant width) 用于程序和程序的元素,以及用于例子中显示文件的内容或命令的输出。对例子或代码片段中使用的单词或条目的引用也使用等宽字体。等宽粗体(constant bold) 在例子中用于显示命令或者其他需要由用户逐字输入的文本(例如,rm foo表示当它出现在文本或例子中时,要确切地键入"rm foo")。等宽斜体(Constant italic) 用在例子中表示需要根据特定环境进行取代的变量(例如,变量filename应该用某个实际的文件名来代替)。 "引号" 用于识别说明性文本中的系统消息或代码片段。 % Unix C shell提示符。 $ Unix Bourne shell或Korn shell提示符。 [ ] 括住程序语法描述中的可选值(方括号本身不应该键入)。 . . . 代表出于清晰或节省空间而省略了的文本(通常是计算机输出)。符号CTRL-X或 ^X表示控制字符的使用。它表示按住"control"键的同时键入字符"x"。我们类似地表示其他键(例如,RETURN表示回车键)。命令行的所有例子后面都跟有一个RETURN,除非另有说明。如何联系我们请将关于本书的评价和问题写信到: O'Reilly & Associates, Inc. 1005 Gravenstein Highway North Sebastopol, CA 95472 1-800-998-9938 (美国或加拿大) 1-707-829-0515 (国际长途或本地) 1-707-829-0104 (传真) 本书有一个Web页面,其中列出了勘误表、例子及其他附加信息。你可以在下面的地址访问该页面: http://www.oreilly.com/catalog/cplus2 要评价本书或询问有关技术问题,请发电子邮件到: bookquestions@oreilly.com 要了解更多有关书籍、协会、资源中心和O'Reilly Network的信息,请参见O'Reilly的Web站点: http://www.oreilly.com/ 第一版致谢感谢Peg Kovar的校对和编辑。特别感谢Dale Dougherty将我的第一本书弄乱,并迫使我又将它正确地组装到一起。非常感谢Phil Straite和Gregory Satir为组装而付出的辛勤劳动。尤其感谢所有为我审查和编辑本书的人。还感谢O'Reilly & Associates产品组的项目经理和产品编辑Nicole Gipson,产品助理John Files、Juliette Muellner和Jane Ellin,以及书籍设计执行人Mike Sierra。最后,特别感谢那些辛苦的程序员们,他们编写的代码教会了我太多的东西。第二版致谢对于第二版,我希望感谢我的编辑Robert J. Denn,他为本书的出版付出了耐心和艰苦的劳动。感谢Ray Lischner的技术指导。Al Stevens因其广泛的C++知识和严格的标准而应受到特别的赞赏。他的努力有助于我强化了术语及精化了书中的例子,从而导致书的原稿更加精确。本书的任何错误都是我自己造成的,而不是审稿者或O'Reilly的工作人员的错。我还要感谢O'Reilly的所有销售和市场人员,他们拼命地工作来销售我的书。
相关资源回到顶部↑
· 【推荐】众多高校学子口口相传,他们共同的选择--华清远见嵌入式学院(嵌入式Linux就业课程、3G手机开发就业课程,通过入学测试即签100%就业协议,4个月集中实训,世界500强企业成功就业保障!!!)· 【亚嵌教育 嵌入式培训专家】(嵌入式培训,嵌入式Linux培训,ARM培训,Linux培训,3G培训,Android培训,WINCE培训,DSP培训,FPGA培训,嵌入式就业培训)
· 程序员的7种武器(正则表达式、编程语言、数据库、算法、软件调试、开发环境)
· C/C++ 经典著作(《C专家编程》《C++ Templates中文版》《C和指针 》《C陷阱与缺陷》《C++沉思录》)
评论交流
共有11人开贴评论 12人参与评论 11人参与打分 查看
评价等级:

发表于:2005-7-1 16:06:00
这位作者写的实用C程序设计是很不错的一本书,给它打5星不过分
但是实用C++程序设计真的不应该推荐给读者
我说说自己的看法,希望对其他人选书有所帮助
这本书是实用C程序设计+类概念+模板概念
但是这种方式早就被质疑,包括Stroustrup和Konig都这么认为
Konig在那本名著C++沉思录里面说这种方法将C++当作一种低级语言来教
而一旦学会了过程式编程思维,是很难抹掉的
虽然Konig后来写的那本Accerelate C++也不尽如人意,但是作为没有过程式语言背景的人,还是比这本书好许多
而对于那些有过程式背景的程序员,这本书同样是鸡肋,因为内容很多他们都会了
我个人以为没有学过语言的人学C++可以先读Accelerate C++
然后读C++ Primer和C++沉思录
我认为C++沉思录是一本不可多得的好书!可以有空的时候躺在床上浏览,等学到某些内容的时候,很容易会恍然大悟的
不过我认为在这两本书以外,还应该专门学习STL,个人以为C++ Primer写STL那部分有些语焉不详,Musser或者候捷梦魇翻译的C++标准程序库都不错。前者作为入门教材更值得推荐,不过鉴于翻译(其实还行,我读的就是这本)和其他考虑,还是更推荐那本大厚本。
这些书已经足够学习所用了。不用太多了!
至于深造,可以看专门的书,如著名的Effective C++,More Effective C++等等,或者文章,这些都应该是要用什么看什么,也多看源码。
至于Stroustrup的书,那本演化可以抽空读读,C++语言跟其它语言最大的不同(呵呵)就在于他的发明者同时喜欢哲学并喜欢把他发明的东西不厌其烦地写出来。但是在其它语言,程序员们就没这种幸运了,他们只能通过很多片断了解自己使用的语言的历史。那本“圣经”,每个C++程序员理论上都应该有一本。不过实际上,那就看个人了。
但是实用C++程序设计真的不应该推荐给读者
我说说自己的看法,希望对其他人选书有所帮助
这本书是实用C程序设计+类概念+模板概念
但是这种方式早就被质疑,包括Stroustrup和Konig都这么认为
Konig在那本名著C++沉思录里面说这种方法将C++当作一种低级语言来教
而一旦学会了过程式编程思维,是很难抹掉的
虽然Konig后来写的那本Accerelate C++也不尽如人意,但是作为没有过程式语言背景的人,还是比这本书好许多
而对于那些有过程式背景的程序员,这本书同样是鸡肋,因为内容很多他们都会了
我个人以为没有学过语言的人学C++可以先读Accelerate C++
然后读C++ Primer和C++沉思录
我认为C++沉思录是一本不可多得的好书!可以有空的时候躺在床上浏览,等学到某些内容的时候,很容易会恍然大悟的
不过我认为在这两本书以外,还应该专门学习STL,个人以为C++ Primer写STL那部分有些语焉不详,Musser或者候捷梦魇翻译的C++标准程序库都不错。前者作为入门教材更值得推荐,不过鉴于翻译(其实还行,我读的就是这本)和其他考虑,还是更推荐那本大厚本。
这些书已经足够学习所用了。不用太多了!
至于深造,可以看专门的书,如著名的Effective C++,More Effective C++等等,或者文章,这些都应该是要用什么看什么,也多看源码。
至于Stroustrup的书,那本演化可以抽空读读,C++语言跟其它语言最大的不同(呵呵)就在于他的发明者同时喜欢哲学并喜欢把他发明的东西不厌其烦地写出来。但是在其它语言,程序员们就没这种幸运了,他们只能通过很多片断了解自己使用的语言的历史。那本“圣经”,每个C++程序员理论上都应该有一本。不过实际上,那就看个人了。
| 我要写评论 |
| 查看所有评论交流(共11条) |








点击看大图




加载中...

