首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 图书频道 > 计算机与网络 > 程序设计 >

C++程序员教程

2010-04-18 
基本信息·出版社:电子工业出版社 ·页码:724 页 ·出版日期:2010年01月 ·ISBN:9787121099052 ·条形码:9787121099052 ·版本:第1版 ·装帧:平装 ...
商家名称 信用等级 购买信息 订购本书
C++程序员教程 去商家看看
C++程序员教程 去商家看看

 C++程序员教程


基本信息·出版社:电子工业出版社
·页码:724 页
·出版日期:2010年01月
·ISBN:9787121099052
·条形码:9787121099052
·版本:第1版
·装帧:平装
·开本:16
·正文语种:中文
·丛书名:国外计算机科学教材系列
·外文书名:C++ for Programmers

内容简介 《C++程序员教程》是一本C++编程方面的优秀图书,全面介绍了C++编程的原理和方法,涉及类与对象、控制语句、函数与递归、数组与类模板vector、指针与基于指针的字符串、类、运算符重载、继承、多态、模板、流输入/输出、异常处理、文件处理、字符串流处理、STL Boost类库、TR1、C++Ox等,可以说《C++程序员教程》是学习C++编程语言最好的教程。附录中还分别给出了完整的ATM案例研究的代码以及GNU、Visual Studio调试器的用法。书中240个活代码例子,对学习C++非常有帮助。
《C++程序员教程》适合软件设计人员学习C++编程,也可作为高等院校相关专业的编程语言教材。
作者简介 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博士为许多大公司、学术机构、政府机关和军队提供了数百场的专业培训。
媒体推荐 优秀的“对象第一”的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):窗口、迭代器和算法
目录
第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++0x
1.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章 数组与类模板vector
7.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/O
15.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++0x
21.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.Smartptr
21.9 Technical Report 1
21.10 C++0x
21.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++调试器
参考文献
索引
……
序言 欢迎来到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++平台上测试通过。对于其中的大多数例子,迁移到与标准兼容的编译器中是很容易的。
给出多种平台下的错误和警告消息。对于那些故意包含错误以说明关键概念的程序,书中给出了多种流行平台下的错误消息。
文摘 插图:


开源软件(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。
热点排行