第一图书网

C++程序员教程

[美] Paul J. Deitel;Harvey M. Deitel (美)Paul J. Deitel;Harvey M. Deitel、 张良华;吴明飞;胡强 电子工业出版社 (2010-01出版)
出版时间:

2010-1  

出版社:

(美)Paul J. Deitel;Harvey M. Deitel、 张良华;吴明飞;胡强 电子工业出版社 (2010-01出版)  

作者:

[美] Paul J. Deitel;Harvey M. Deitel  

页数:

724  

译者:

张良华;吴明飞;胡强  

Tag标签:

无  

前言

欢迎来到C++编程的世界!Deitel & Associates公司为Prentice Hall出版社编写专业的编程语言图书和教材,面向全球提供企业培训课程,发展Internet业务。本书的读者对象是那些还不了解C++的程序员,他们可能已经知道或者还不熟悉面向对象编程。本书的特点这个前言部分,将为读者提供一个书中关于C++和面向对象编程所涵盖范围的概要。以下是本书的一些主要特性。尽早接触类与对象方法。从一开始到贯穿于全书的过程中,都体现了面向对象编程的思想。集成的案例研究。第3~7章开发了一个GradeBook类,第9~10章开发了一个Time类,第12~13章开发了一个Employee类,第1~7章、第9章、第13章和附录E中开发了一个选读的OOD/UML ATM案例研究。统一建模语言 2(UML 2)。统一建模语言(Unified Modeling Language,UML)已经成为了设计面向对象系统的首选图形化建模语言。书中用UML类框图来可视化地表示类以及它们之间的继承关系,并采用UML活动框图演示了每个C++控制语句的控制流。在选读的OOD/UML ATM案例研究中,重点讲解了UML。选读的OOD/UML ATM案例研究。首先讲解的是一个经过了简化的UML 2子集,然后让面向对象的设计员/程序员初学者进行初次的设计体验。这个案例研究已经由不同的OOD/UML学术和业界专家评审过了。这不是一个练习,而是一个完整开发的端到端的学习体验,最后形成了一个完整的过程,由877行C++代码实现。在这个前言的后面,将对这个案例研究的9个小节进行详细说明。函数调用栈解释。第6章中给出了函数调用栈和活动记录的详细讨论(还给出了演示),以解释C++是如何能够跟踪当前正在执行的函数的、函数的自动变量是如何在内存中自动维护的,以及当函数执行完成后该返回到什么地方。string类。本书采用string类而不是C风格的基于指针的char *字符串,用于书中大多数字符串操作中。第8、10、11、19章中包含了对char *的讨论,向读者提供了指针操作的实践,以演示new和delete操作符的动态内存分配、建立自己的string类、在遗留的C和C++代码中使用char *字符串等。类模板vector。本书使用类模板vector而不是C风格的基于指针的数组操作。但是,第7章中依然探讨了C风格的基于指针的数组,以便能使用遗留的C和C++代码,而且它还是第11章中建立定制的Array类的基础。继承和多态的介绍。第12~13章中包含一个Employee类层次,对于新接触OOP的程序员而言,能使他们对继承和多态的理解变得清晰而触手可及。讨论并演示了多态是如何在“幕后”起作用的。第13章中包含一个详细的框图,解释了C++是如何在内部实现多态、虚函数和动态绑定的。这些内容将帮助读者对这些功能的工作原理有深刻的理解。更重要的是,它可以帮助读者理解多态的开销,也就是额外的内存消耗和处理器时间。它有助于决定什么时候该使用多态、什么时候不该使用。标准模板类库(STL)。STL也许是本书中关于软件复用的最重要的主题之一。STL中定义了功能强大的、基于模板的、可复用的组件,实现了许多常用的数据结构以及处理它们的算法。第20章中将介绍STL并探讨它的三个主要概念:容器、迭代器和算法。利用STL组件提供的极其强大的表现能力,经常可将占据许多行的非STL代码缩减成一条语句。符合ISO/IEC C++标准。对于本书中的程序,作者已经根据最新的ISO/IEC C++标准文档进行了审查,以满足完备性和精确性。[注:C++标准的PDF版本(文档编号INCITS/ISO/IEC 14882-2003)可以在webstore.ansi.org/ansidocstore/default.asp购买到。C++的未来。第21章探讨了C++的未来,在那里引入了Boost C++类库、Technical Report 1 (TR1)和C++0x。Boost C++类库是免费的开源库,它由C++社区的成员创建。Technical Report 1描述了对C++标准类库的建议修改之处,其中有许多是基于当前的Boost类库的。目前,C++标准委员会正在修订C++标准,新标准的主要目标是使C++更容易学习、提升类库的创建功能,以及提高与C编程语言的兼容性。最新的标准发表于1998年。目前,正在修订的新标准被称为C++0x,它开始于2003年,新标准很可能会在2009年发布到本书出版时为止,新标准还没有推出——编者注。。它将包括对语言核心的修改,当然更多的还是根据TR1中的类库进行的修改。本书将分析TR1中的类库,并提供“正则表达式”类库和“智能指针”类库的代码例子。附录中讲解了调试器。附录G和附录H中分别讲解了Visual Studio调试器和GNU C++调试器的使用方法。多平台上的代码测试。本书中的代码例子已经在各种流行的C++平台上测试通过。对于其中的大多数例子,迁移到与标准兼容的编译器中是很容易的。给出多种平台下的错误和警告消息。对于那些故意包含错误以说明关键概念的程序,书中给出了多种流行平台下的错误消息。

内容概要

  《C++程序员教程》是一本C++编程方面的优秀图书,全面介绍了C++编程的原理和方法,涉及类与对象、控制语句、函数与递归、数组与类模板vector、指针与基于指针的字符串、类、运算符重载、继承、多态、模板、流输入/输出、异常处理、文件处理、字符串流处理、STL Boost类库、TR1、C++Ox等,可以说《C++程序员教程》是学习C++编程语言最好的教程。附录中还分别给出了完整的ATM案例研究的代码以及GNU、Visual Studio调试器的用法。书中240个活代码例子,对学习C++非常有帮助。  《C++程序员教程》适合软件设计人员学习C++编程,也可作为高等院校相关专业的编程语言教材。

作者简介

作者:(美国)Paul J.Deitel (美国)Harvey M.Deitel 译者:张良华 吴明飞 胡强Paul J.Deitel,Deitel&Associates公司CEO兼CTO,毕业于麻省理工学院Sloan管理学院,主修信息技术。通过Deitel&Associates公司,他向行业客户、政府机关和军队提供C++、Java、C、C#和Visual Basic课程,这些客户包括Cisco、IBM、Sun Microsystems、Dell、Lucent Technologies、Fidelity、NASA、White Sands MissileRange、the National Severe Storm Laboratory、Rogue Wave Software、Boeing、Stratus、Hyperion Software、Adra Systems、Entergy、CableData Systems、Nortel Networks、Puma、iRobot、Invensys,等等。Paul曾为计算机协会波士顿分会讲授Java和C++,还曾为墨西哥Monterrey的ITESM讲授过.NET技术。他和他的父亲Harvey M.Deitel博士,是全球畅销的编程语言教材的作者。HarveyM.Deitel博士,Deitel&Associates公司的主席和首席战略官,具有47年学术和业界的工作经验。Deitel博士在麻省理工学院获得学士和硕士学位,在波士顿大学获得博士学位。他具有20年的大学教学经验,在与儿子Paul J.Deitel创立Deitel&AssociateS公司之前,他是波士顿大学计算机科学系主任并获得了终身任职权。Deitel父子是几十本图书和多媒体软件包的共同作者,并且他们还在撰写着更多的作品。他们的教材已经赢得了国际声誉,并被翻译成了日文、德文、俄文、西班牙文、繁体中文、简体中文、朝文、法文、波兰文、意大利文、葡萄牙文、希腊文、乌尔都文和土耳其文。Deitel博士为许多大公司、学术机构、政府机关和军队提供了数百场的专业培训。

书籍目录

第1章 基本介绍1.1 简介1.2 C和C++的历史1.3 C++标准类库1.4 重要的软件趋势:对象技术1.5 典型的C++开发环境1.6 关于C++和本书的说明1.7 测试驱动的C++程序1.8 软件技术1.9 C++的未来:开源Boost类库,TR1和C++0x1.10 软件工程案例研究:对象技术和UML介绍1.11 小结1.12 Web资源第2章 C++编程入门2.1 简介2.2 第一个C++程序:输出一行文本2.3 修改第一个C++程序2.4 另一个C++程序:整数相加2.5 算术运算2.6 判断:相等运算符和关系运算符2.7 (选读)软件工程案例研究:分析ATM需求规范2.8 小结第3章 简要介绍类和对象3.1 简介3.2 类、对象、成员函数和数据成员3.3 本章的例子概述3.4 定义带成员函数的类3.5 定义带参数的成员函数3.6 数据成员、set函数和get函数3.7 用构造函数初始化对象3.8 将类放入单独的文件中,提高复用性3.9 分离接口与实现3.10 用set函数验证数据3.11 (选读)软件工程案例研究:确定ATM需求规范中的类3.12 小结第4章 控制语句(1)4.1 简介4.2 控制结构4.3 if选择语句4.4 if...else双选择语句4.5 while循环语句4.6 计数器控制循环4.7 标记控制循环4.8 嵌套控制语句4.9 赋值运算符4.10 增量和减量运算符4.11 (选读)软件工程案例研究:确定ATM系统的类属性4.12 小结第5章 控制语句(2)5.1 简介5.2 计数器控制循环的实质5.3 for循环语句5.4 使用for语句的例子5.5 do...while循环语句5.6 switch多选择语句5.7 break与continue语句5.8 逻辑运算符5.9 相等运算符(==)与赋值运算符(=)5.10 (选读)软件工程案例研究:确定ATM系统中对象的状态和活动5.11 小结第6章 函数与递归6.1 简介6.2 C++中的程序组件6.3 数学类库函数6.4 有多个参数的函数定义6.5 函数原型与实参强制性6.6 C++标准类库头文件6.7 案例研究:随机数生成6.8 案例研究:机会游戏,引入枚举6.9 存储类6.10 作用域规则6.11 函数调用栈与活动记录6.12 带空参数表的函数6.13 内联函数6.14 引用与引用参数6.15 默认实参6.16 一元作用域分解操作符6.17 函数重载6.18 函数模板6.19 递归6.20 使用递归的例子:Fibonacci序列6.21 递归与迭代的比较6.22 (选读)软件工程案例研究:确定ATM系统的类操作6.23 小结第7章 数组与类模板vector7.1 简介7.2 数组7.3 声明数组7.4 数组使用举例7.5 将数组传入函数7.6 案例研究:GradeBook类用数组保存成绩7.7 对数组进行线性搜索7.8 对数组进行插入排序7.9 多维数组7.10 案例研究:GradeBook类使用二维数组7.11 C++标准类库的类模板vector介绍7.12 (选读)软件工程案例研究:ATM系统中对象间的协作7.13 小结第8章 指针与基于指针的字符串8.1 简介8.2 指针变量的声明与初始化8.3 指针运算符8.4 利用指针将实参按引用传递给函数8.5 使用常量指针8.6 使用按引用传递的选择排序8.7 sizeof运算符8.8 指针表达式与指针运算8.9 指针与数组的关系8.10 指针数组8.11 案例研究:洗牌与发牌模拟8.12 函数指针8.13 基于指针的字符串处理介绍8.14 小结第9章 类:深入探究(1)9.1 简介9.2 Time类案例研究9.3 类的作用域与访问类成员9.4 分离接口与实现9.5 访问函数和工具函数9.6 Time类案例研究:带默认实参的构造函数9.7 析构函数9.8 何时调用构造函数和析构函数9.9 Time类案例研究:微妙的陷阱——返回私有数据成员的引用9.10 默认的逐成员赋值9.11 (选读)软件工程案例研究:开始编程ATM系统的类9.12 小结第10章 类:深入探究(2)10.1 简介10.2 常量对象与常量成员函数10.3 合成:作为类成员的对象10.4 友元函数与友元类10.5 使用this指针10.6 用new和delete操作符实现动态内存管理10.7 静态类成员10.8 数据抽象与信息隐藏10.9 容器类与迭代器10.10 代理类10.11 小结第11章 运算符重载:字符串与数组对象11.1 简介11.2 运算符重载基础11.3 运算符重载的限制11.4 作为类成员的运算符函数与全局函数的比较11.5 重载流插入与流提取运算符11.6 重载一元运算符11.7 重载二元运算符11.8 案例研究:Array类11.9 类型之间的转换11.10 案例研究:String类11.11 重载++和——11.12 案例研究:Date类11.13 标准类库的string类11.14 用explicit声明构造函数11.15 小结第12章 面向对象编程:继承12.1 简介12.2 基类与派生类12.3 保护成员12.4 基类与派生类的关系12.5 派生类中的构造函数和析构函数12.6 公有、保护和私有继承12.7 继承与软件工程12.8 小结第13章 面向对象编程:多态 13.1 简介13.2 多态举例13.3 继承层次中对象间的关系13.4 类型字段与switch语句13.5 抽象类与纯虚函数13.6 案例研究:使用多态的工资系统13.7 (选读)多态、虚函数和动态绑定的“内幕”13.8 案例研究:利用多态以及使用向下强制转换、dynamiccast、typeid和typeinfo运行时类型信息的工资系统13.9 虚析构函数13.10 (选读)软件工程案例研究:在ATM系统中加入继承13.11 小结第14章 模板14.1 简介14.2 函数模板14.3 重载函数模板14.4 类模板14.5 类模板的非类型参数和默认类型14.6 模板与继承14.7 模板与友元14.8 模板与静态成员14.9 小结第15章 流输入/输出15.1 简介15.2 流15.3 流输出15.4 流输入15.5 使用read、write和gcount的非格式化I/O15.6 流操作子简介15.7 流格式状态与流操作子15.8 流的错误状态15.9 将输出流与输入流连接15.10 小结第16章 异常处理16.1 简介16.2 异常处理概述16.3 例子:处理除零错误16.4 何时使用异常处理16.5 重抛异常16.6 异常规范16.7 处理意外的异常16.8 堆栈解退16.9 构造函数、析构函数与异常处理16.10 异常与继承16.11 处理new失败16.12 autoptr类与动态内存分配16.13 标准类库中的异常层次16.14 其他的错误处理技术16.15 小结第17章 文件处理17.1 简介17.2 数据层次17.3 文件和流17.4 创建顺序文件17.5 从顺序文件读取数据17.6 更新顺序文件17.7 随机访问文件17.8 创建随机访问文本文件17.9 向随机访问文件写随机数据17.10 从随机访问文件顺序读取17.11 案例研究:交易处理程序17.12 对象序列化概述17.13 小结第18章 string类与字符串流处理18.1 简介18.2 字符串的赋值与拼接18.3 字符串比较18.4 子串18.5 字符串交换18.6 字符串的特性18.7 搜索字符串中的子串和字符18.8 替换字符串中的字符18.9 将字符插入到字符串中18.10 转换成C风格的char *字符串18.11 迭代器18.12 处理字符串流18.13 小结第19章 位、字符、C字符串和结构19.1 简介19.2 结构定义19.3 初始化结构19.4 将结构用于函数19.5 typedef定义19.6 例子:高性能的洗牌与发牌模拟19.7 位运算符19.8 位段19.9 字符处理类库19.10 基于指针的字符串转换函数19.11 基于指针的字符串处理类库中的搜索函数19.12 基于指针的字符串处理类库中的内存函数19.13 小结第20章 标准模板类库(STL)20.1 标准模板类库(STL)介绍20.2 序列容器20.3 关联容器20.4 容器适配器20.5 算法20.6 bitset类20.7 函数对象20.8 小结20.9 STL Web资源第21章 Boost类库、Technical Report 1和C++0x21.1 简介21.2 Deitel在线C++以及相关的资源中心21.3 Boost类库21.4 向Boost添加新类库21.5 安装Boost类库21.6 Technical Report 1(TR1)中的Boost类库21.7 正则表达式与Boost.Regex类库21.8 智能指针与Boost.Smartptr21.9 Technical Report 121.10 C++0x21.11 核心的语言变化21.12 小结第22章 其他主题22.1 简介22.2 constcast运算符22.3 名字空间22.4 运算符关键字22.5 mutable类成员22.6 类成员的指针(.*和->*)22.7 多重继承22.8 多重继承与虚拟基类22.9 小结附录A 运算符的优先级和结合性附录B ASCII字符集附录C 基础类型附录D 预处理器附录E ATM案例研究代码附录F UML 2的其他框图类型附录G 使用Visual Studio调试器附录H 使用GNU C++调试器参考文献索引

章节摘录

插图:开源软件(open source software)。它是开发软件的一种形式,与早年的专利式私有软件的开发形成对照。通过开源软件的开发,个人和公司付出他们的努力,开发、维护并完善软件,以便根据自己的目的与其他人交换使用软件的权利,通常可免费使用。与私有软件相比,开源代码通常会得到更多人的审查,因此能够更快地消除软件中的bug。开源还鼓励更多的创新。最近,Sun公司宣布了对Java进行开源。在开源社区中经常能见到的一些机构是Eclipse Foundation(对于c++和Java软件,Eclipse IDE是流行的开发环境)、Mozilla Foundation(Firefox浏览器的创建者)、Apache Software Foundation(Apache Web浏览器的创建者)和SourceForge(它提供管理开源工程的工具,当前有超过150000个开源工程正在开发之中)。Linux是一种开源操作系统,也是开源运动最大的成功者之一。MySQL是一个开源数据库管理系统。PHP是最流行的开源服务器端脚本语言,用于开发基于Internet的程序。IAMP是一组开源技术的缩写,许多开发人员用这些技术来构建Web程序。LAMP表示Linux、Apache、MySQL和PHP(或Perl、Python,它们是另外两种用途类似的语言)。软件已经被当作普通的产品对待,大多数软件就是按照产品的形式提供的。如果用户希望运行一个程序,就需要从软件厂商那里购买软件包。然后,用户需在计算机上安装这个软件,并在需要时运行它。当软件有新的版本时,就需升级软件,这常常要花不少钱。对机构而言,如果有不同配置的成千上万个系统必须维护,则这个过程可能非常麻烦。利用“软件即服务”(Software as a Service,SaaS),软件可在Intemet中的某个服务器上运行。当更新了这些服务器后,全球范围内的所有客户都可看到这些新的功能,从而避免了本地安装的需求。可以通过浏览器访问服务,它们具有非常好的可移植性,因此能够在世界上任何地方的不同类型的计算机上运行同一个程序。Salesforce.com、Google以及Microsoft的Office Live和Windows Live都提供SaaS。

媒体关注与评论

优秀的“对象第一”的C++图书。通过例子讲解了大量内容,加上选读的UML案例研究,使得它们能融入后续的软件工程项目中。  ——Gavin Osborne,SasKatchewan Institute of Applied Science and Technology尽早引入UML的想法非常好。  ——Raymond stephenson Microsoft框图的使用恰到好处,尤其是讲解调用栈和递归函数时的那些框图。  ——Amar Raheja,California State Polytechnic University,Pomona对指针的讲解非常棒,也许是我见过的最好的。  ——Anne B.Horton,Lockhecd Martin对多态以及编译器如何在“内幕”实现多态的讲解不错。  ——Ed James-Beckham,Borland讲解Boost/C++Ox的那一章使读者能熟悉并迅速懂得关于内存管理和正则表达式类库的知识,还能激发读者了解即将被标准化的c++特性的欲望。  ——Ed Brey Kohler Co.对标准模板类库(STL)的介绍真好。这是关于c++编程最好的书。  ——Eichard Albright,Goldey-Beacom College当读者认为只是在学习一个主题时,会突然发现所学远非这一点。  ——Chad Willwerth,University of Washington Tacoma我所见过的讲解最全面的C++图书。用丰富的真实例子,涵盖了软件开发的整个生命周期。代码例子非此寻常!  ——Terrell Hull,Logicalis Integration Soutions


编辑推荐

《C++程序员教程》:包含240个实例程序C++和面向对象程序开发的程序员指南为具备高级语言编程经验的程序员而编写,《C++程序员教程》采用Deitel知名的活代码方法,深入讲解C++语言和C++标准类库。书中给出的概念以经过全面测试的程序为背景,这些程序包含语法阴影、代码高亮、代码遍历和结果输出等特点。书中包含240个C++程序,超过15000行代码,还包括数百个编程提示,帮助读者建立强壮的程序。《C++程序员教程》从采用尽早接触类的C++介绍开始,然后立即讲解更高级的主题,包括模板、异常处理、标准模板类库(STL)以及从Boost类库中精选的特性。读者一定会喜欢书中经典的面向对象编程内容,其中的OOD/UML 2 ATM案例研究给出了完整的C++代码。学完《C++程序员教程》之后,读者就具备了建立面向对象C++程序所需的一切技能。Paul J.Deitel先生和Harvey M.Deitel博士是Deitel&Associates公司的创始人,这是一家国际知名的写作编程语言图书、进行企业培训以及Internet业务发展的公司。两位作者已经出版过许多全球畅销的编程语言专业图书和教材,使数百万的读者得以精通C++、C、Java、c#、Visual Basic、Visual c++、XML、Perl、Python以及Internet和Web!编程。“程序员教程”系列是为实用的编程技术而设计的,这个系列主要关注新出现的技术,包括C++、·NET、Java、Web服务、Internet、Web开发,等等。登录www.deitei.com获取关于全球客户Deitel Dive-Into系列企业培训课程的信息(或者写信给deitel@deitel.com)下载代码例子查看正在不断扩充的关于编程、Web 2.0以及与软件相关的资源中心列表获取《C++程序员教程》的更新信息,订阅免费的DeiteI Buzz Online电子邮件新闻简报(www.deitei.com/newsletter/subscribe.html)阅读存档的Deitel Buzz Online内容类、对象、封装、继承、多态集成的OOP案例研究:Time类、GradeBook类和Employee类95页行业标准的OOD/UML 2 ATM案例研究标准模板类库(STL):容器、迭代器和算法I/O、类型、控制语句、函数数组、向量、指针、引用字符串类、C风格的字符串运算符重载、模板异常处理、文件位操作和字符操作Boost类库和C++的未来GNU和Visual C++调试器更多……指针 集成的OOP案例研究模板 Boost类库和C++的未来Vector GUN和Visual C++调试器异常处理 OOD/UML 2 ATM案例研究C++标准类库 标准模板类库(STL):窗口、迭代器和算法

图书封面

图书标签Tags

广告

下载页面


C++程序员教程 PDF格式下载



不知道哪里发来的旧书,封面还是破损的


内容超多的,字体有点小。。。作为C++程序员的高级教程,这个书名说的很对啊,很好很喜欢


很喜欢这本书,而且在亚马逊买的,感觉很划算,送的也很快。谢谢


c++程序员必看的书


相关图书