书籍详情
C++面向对象程序设计(第四版)
作者:(美)Robert Lafore著;邓子梁,胡勇译;邓子梁译
出版社:中国电力出版社
出版时间:2004-02-01
ISBN:9787508319100
定价:¥69.80
购买这本书可以去
内容简介
《C++面向对象程序设计》第四版的主要变化包括对统一建模语言(UML)的初步介绍,第13章增加的文件间通信部分,以及第16章介绍的用于改进软件开发的方法。开始介绍UML时,只要符合文章主题就应尽量使用UML图例,所以全书中有很多新的UML图例。文件间通信部分集中了先前分散在全书的很多概念。自本书上一个版本以来,业界关于面向对象分析和设计的方法已有了不少发展,因此本书对与这个主题有关的章节做了修改,从而反映这些最新的进展。从上一个版本以来,C++本身只有很少改变。虽然如此,除了已提及到的修订部分,还做了很多小的变动,以便更清楚地阐明已存在的主题,另外还改正了不少印刷错误,对原文中不准确的地方也做了修正。这本书将讲解如何使用C++程序设计语言来编写程序.然而,它做得比这更多.在过去的几年内,软件开发领域出现了一些重大的革新.本书将根据这些最新的发展来教授C++.现在就来看看它们都是什么吧!程序设计变革在20多年以前,程序员在接到一个项目后可以立即坐下来编代码.然而,随着程序设计项目变得越来越大和越来越复杂,这种方法就不怎么有效了.问题的根源就是复杂性.大型程序是人类所创建过的最复杂的实体.由于它的复杂性,程序很容易出错,软件错误往往代价高昂,有时甚至威胁到生命安全(如空中交通控制系统).为解决软件的复杂性问题,程序设计领域出现了三个主要的变革,它们是:面向对象程序设计(Object-OrientedProgramming,OOP)统一建模语言(UnifiedModelingLanguage,UML)改良的软件开发过程本书将用这三个变革的思想来讲授C++语言.在此,你不仅会学到一门计算机语言,还会学到很多有关软件开发的新方法.面向对象程序设计为什么面向对象程序设计成为大多数软件项目的首选方法?OOP提供了一种全新的强大方法来处理复杂性.相对于将程序看成一系列可执行的步骤,新的方法将程序看成是一组具有特定属性和执行特定操作的对象.在进一步学习该方法之前,它听起来有些晦涩,但它确实能够让程序更清晰.更可靠和更容易维护.本书的一个主要目的就是讲授面向对象程序设计,因此将尽可能早地介绍它,并且尽可能覆盖它的所有主要特性.本书的大多数示例程序都是面向对象的.统一建模语言统一建模语言(UML)是一门由多种图例组成的图形语言.它能够帮助程序分析员弄清程序应该做什么,同时帮助程序员设计和理解程序的工作过程.UML是一种能使程序设计更为简单和有效的强大工具.在第1章中对UML做了一个概述,指出本书中将讨论的UML的具体特性.在有助于阐明所讨论的OOP话题的地方,都介绍了相关的UML特性,这种方法使得在学习UML的同时也有助于学习C++.语言和开发平台在面向对象程序设计语言中,C++是到目前为止使用最为广泛的语言.最近才加入OO语言一族的Java由于缺少某些特性,如指针.模板和多重继承等,其功能没有C++多,也不如C++强大(如果你想学习Java,C++的学习将是一个起点.因为Java语法和C++很相似).最近还出现了其他几种OO语言,比如C#,但它们还没有像C++一样被广泛接受.直到最近,C++标准还处在不断变革中,这意味着每一个编译器厂商在处理某些细节时都会有所不同.然而,在1997年11月,ANSI/ISOC++标准委员会批准了最后一个C++草案,这就是众所周知的?曜糃++(ANSI是指美国国家标准化学会,ISO是指国际标准化组织).标准C++增加了许多新的特性,如标准模板库(StandardTemplateLibrary,STL).本书以标准C++为主(少数地方除外,会在学习中标明).最流行的C++开发环境由Microsoft和Borland提供,它们运行在各种MicrosoftWindows平台上.我们尽量保证本书所有的示例程序都可以运行在Borland和Microsoft编译器的当前版本下(参见附录C“MicrosoftVisualC++”和附录D“BorlandC++Builder”中更多关于编译器的内容).关于本书本书使用C++程序设计语言来讲授面向对象程序设计,具体的编译器可以是Microsoft的,也可以是Borland的.此外,本书还介绍了UML和软件开发过??.本书适合于专业程序员.学生和程序爱好者.新概念对于传统语言(如Pascal.Basic和C)程序员来说,OOP涉及的概念是很新的.类.继承和多态性等思想是OOP的核心概念,但是在讨论面向对象语言的细节时,很容易忘掉这些概念.许多书籍都过多地让读者关注语言特性的细节,而忽略掉了这些特性存在的缘由.而本书着眼于全局,将具体的细节和宏观的概念相联系.渐进式方法本书采用了渐进式的学习方法,从最简单的程序设计示例开始,到最后完整的面向对象应用程序.我们尽量以适当的速度介绍新概念,以便于读者有足够的时间在下一次学习之前消化掉这些思想.我们也尽可能地使用图表来阐明新思想.在每一章的结尾都提供了思考题和程序设计练习题以适合于课堂教学.附录G附有思考题和小部分(带星号)练习题的解答,不同难度的练习题可以给学生以不同的挑战
作者简介
RobertLafore从1982年开始写作计算机编程方面的书籍。其畅销书包括《AssemblyLanguageProgrammingfortheIBMPC》、《CProgrammingUsingTurboC++》、《C++InteractiveCourse》及《DataStructuresandAlgorithmsinJava》。Lafore先生拥有数学和电气工程学位,并且从PDP-5时代就开始编程了。他还是LawrenceBerkeleyLaboratory的系统程序员,并且拥有自己的软件公司。
目录
出版说明
译者序
前言
关于作者
献词
内容简介
第1章 概述
1.1 面向对象程序设计诞生的原因
1.2 面向对象语言的特征
1.3 C++和C
1.4 基础知识
1.5 统一建模语言(UML)
1.6 本章摘要
1.7 思考题
第2章 C++编程基础
2.1 准备开始
2.2 基本程序结构
2.3 使用cout输出
2.4 指令
2.5 注释
2.6 整数变量
2.7 字符变量
2.8 使用cin输入
2.9 浮点数类型
2.10 bool类型
2.11 setw操作符
2.12 变量类型总结
2.13 类型转换
2.14 算术运算符
2.15 库函数
2.16 本章摘要
2.17 思考题
2.18 练习
第3章 循环和选择
3.1 关系运算符
3.2 循环
3.3 选择
3.4 逻辑运算符
3.5 优先级总结
3.6 其他控制语句
3.7 本章摘要
3.8 思考题
3.9 练习
第4章 结构
4.1 结构
4.2 枚举
4.3 本章摘要
4.4 思考题
4.5 练习
第5章 函数
5.1 简单的函数
5.2 向函数传递参数
5.3 从函数返回值
5.4 引用参数
5.5 重载函数
5.6 递归
5.7 内联函数
5.8 默认参数
5.9 域解析运算符和存储类
5.10 通过引用返回
5.11 常量类型的函数参数
5.12 本章摘要
5.13 思考题
5.14 练习
第6章 对象和类
6.1 简单的类
6.2 作为现实对象的C++对象
6.3 作为数据类型的C++对象
6.4 构造函数
6.5 作为函数参数的对象
6.6 默认拷贝构造函数
6.7 函数返回对象
6.8 纸牌游戏的例子
6.9 结构和类
6.10 类.对象和内存
6.11 静态类成员数据
6.12 const和类
6.13 类和对象的意义
6.14 本章摘要
6.15 思考题
6.16 练习
第7章 数组和字符串
7.1 数组基础
7.2 作为类成员数据的数组
7.3 对象数组
7.4 C字符串
7.5 标准的C++ string类
7.6 本章摘要
7.7 思考题
7.8 练习
第8章 运算符重载
8.1 重载一元运算符
8.2 重载二元运算符
8.3 数据转换
8.4 UML类图
8.5 运算符重载与转换中的陷阱
8.6 关键字explicit和mutable
8.7 本章摘要
8.8 思考题
8.9 练习
第9章 继承
9.1 派生类和基类
9.2 派生类构造函数
9.3 重载成员函数
9.4 使用了哪个函数
9.5 英制Distance类中的继承
9.6 类的层次
9.7 继承与图形
9.8 公共的和私有的继承
9.9 继承的级别
9.10 多重继承
9.11 EMPMULT中的private派生
9.12 多重继承的多义性
9.13 聚合关系:类内部的类
9.14 继承和程序开发
9.15 本章摘要
9.16 思考题
9.17 练习
第10章 指针
10.1 地址和指针
10.2 取地址运算符&
10.3 指针和数组
10.4 指针和函数
10.5 指针和C类型字符串
10.6 内存管理:new和delete
10.7 对象指针
10.8 链表实例
10.9 指向指针的指针
10.10 解析算术表达式实例
10.11 模拟赛马
10.12 UML状态图
10.13 调试指针
10.14 本章摘要
10.15 思考题
10.16 练习
第11章 虚函数
11.1 虚函数
11.2 友元函数
11.3 静态函数
11.4 赋值和拷贝初始化
11.5 this指针
11.6 动态类型信息
11.7 本章摘要
11.8 思考题
11.9 练习
第12章 流和文件
12.1 流类
12.2 流的错误
12.3 使用流的磁盘文件I/O
12.4 文件指针
12.5 文件I/O的错误处理
12.6 使用成员函数的文件I/O
12.7 插入和析取运算符的重载
12.8 内存作为流对象
12.9 命令行参数
12.10 打印机输出
12.11 本章摘要
12.12 思考题
12.13 练习
第13章 多文件程序
13.1 使用多文件程序的动机
13.2 多文件程序的创建
13.3 文件间的通信
13.4 超长数值类
13.5 高楼电梯模拟
13.6 本章摘要
13.7 思考题
13.8 项目
第14章 模板和异常
14.1 函数模板
14.2 类模板
14.3 异常
14.4 本章摘要
14.5 思考题
14.6 练习
第15章 标准模板库
15.1 STL简介
15.2 算法
15.3 顺序容器
15.4 迭代器
15.5 特殊迭代器
15.6 关联容器
15.7 存储用户自定义对象
15.8 函数对象
15.9 本章摘要
15.10 思考题
15.11 练习
第16章 面向对象软件开发
16.1 软件开发过程的演变
16.2 Use Case建模
16.3 程序设计的问题
16.4 程序LANDLORD的细化阶段
16.5 从Use Case到类
16.6 编写代码
16.7 程序的交互
16.8 最终想法
16.9 本章摘要
16.10 思考题
16.11 项目
附录A ASCII表
附录B C++优先级表和关键字
B.1 优先级表
B.2 关键字
附录C Microsoft Visual C++
C.1 屏幕元素
C.2 单文件程序
C.3 多文件程序
C.4 创建简单控制台图形程序
C.5 调试
附录D Borland C++ Builder
D.1 在C++ Builder中运行程序
D.2 清除屏幕
D.3 新建项目
D.4 命名和保存项目
D.5 由现有文件开始
D.6 编译.链接和执行
D.7 将源头文件添加到项目中
D.8 多文件项目
D.9 简单控制台图形程序
D.10 调试
附录E 简单控制台图形
E.1 使用简单控制台图形程序
E.2 简单控制台图形函数
E.3 简单控制台图形函数的实现
E.4 程序清单列表
附录F STL算法和成员函数
F.1 算法
F.2 成员函数
F.3 迭代器
附录G 思考题和练习解答
G.1 第1章
G.2 第2章
G.3 第3章
G.4 第4章
G.5 第5章
G.6 第6章
G.7 第7章
G.8 第8章
G.9 第9章
G.10 第10章
G.11 第11章
G.12 第12章
G.13 第13章
G.14 第14章
G.15 第15章
G.16 第16章
附录H 参考书目
H.1 高级C++
H.2 定义文档
H.3 统一建模语言(UML)
H.4 C++的历史
H.5 其他主题
译者序
前言
关于作者
献词
内容简介
第1章 概述
1.1 面向对象程序设计诞生的原因
1.2 面向对象语言的特征
1.3 C++和C
1.4 基础知识
1.5 统一建模语言(UML)
1.6 本章摘要
1.7 思考题
第2章 C++编程基础
2.1 准备开始
2.2 基本程序结构
2.3 使用cout输出
2.4 指令
2.5 注释
2.6 整数变量
2.7 字符变量
2.8 使用cin输入
2.9 浮点数类型
2.10 bool类型
2.11 setw操作符
2.12 变量类型总结
2.13 类型转换
2.14 算术运算符
2.15 库函数
2.16 本章摘要
2.17 思考题
2.18 练习
第3章 循环和选择
3.1 关系运算符
3.2 循环
3.3 选择
3.4 逻辑运算符
3.5 优先级总结
3.6 其他控制语句
3.7 本章摘要
3.8 思考题
3.9 练习
第4章 结构
4.1 结构
4.2 枚举
4.3 本章摘要
4.4 思考题
4.5 练习
第5章 函数
5.1 简单的函数
5.2 向函数传递参数
5.3 从函数返回值
5.4 引用参数
5.5 重载函数
5.6 递归
5.7 内联函数
5.8 默认参数
5.9 域解析运算符和存储类
5.10 通过引用返回
5.11 常量类型的函数参数
5.12 本章摘要
5.13 思考题
5.14 练习
第6章 对象和类
6.1 简单的类
6.2 作为现实对象的C++对象
6.3 作为数据类型的C++对象
6.4 构造函数
6.5 作为函数参数的对象
6.6 默认拷贝构造函数
6.7 函数返回对象
6.8 纸牌游戏的例子
6.9 结构和类
6.10 类.对象和内存
6.11 静态类成员数据
6.12 const和类
6.13 类和对象的意义
6.14 本章摘要
6.15 思考题
6.16 练习
第7章 数组和字符串
7.1 数组基础
7.2 作为类成员数据的数组
7.3 对象数组
7.4 C字符串
7.5 标准的C++ string类
7.6 本章摘要
7.7 思考题
7.8 练习
第8章 运算符重载
8.1 重载一元运算符
8.2 重载二元运算符
8.3 数据转换
8.4 UML类图
8.5 运算符重载与转换中的陷阱
8.6 关键字explicit和mutable
8.7 本章摘要
8.8 思考题
8.9 练习
第9章 继承
9.1 派生类和基类
9.2 派生类构造函数
9.3 重载成员函数
9.4 使用了哪个函数
9.5 英制Distance类中的继承
9.6 类的层次
9.7 继承与图形
9.8 公共的和私有的继承
9.9 继承的级别
9.10 多重继承
9.11 EMPMULT中的private派生
9.12 多重继承的多义性
9.13 聚合关系:类内部的类
9.14 继承和程序开发
9.15 本章摘要
9.16 思考题
9.17 练习
第10章 指针
10.1 地址和指针
10.2 取地址运算符&
10.3 指针和数组
10.4 指针和函数
10.5 指针和C类型字符串
10.6 内存管理:new和delete
10.7 对象指针
10.8 链表实例
10.9 指向指针的指针
10.10 解析算术表达式实例
10.11 模拟赛马
10.12 UML状态图
10.13 调试指针
10.14 本章摘要
10.15 思考题
10.16 练习
第11章 虚函数
11.1 虚函数
11.2 友元函数
11.3 静态函数
11.4 赋值和拷贝初始化
11.5 this指针
11.6 动态类型信息
11.7 本章摘要
11.8 思考题
11.9 练习
第12章 流和文件
12.1 流类
12.2 流的错误
12.3 使用流的磁盘文件I/O
12.4 文件指针
12.5 文件I/O的错误处理
12.6 使用成员函数的文件I/O
12.7 插入和析取运算符的重载
12.8 内存作为流对象
12.9 命令行参数
12.10 打印机输出
12.11 本章摘要
12.12 思考题
12.13 练习
第13章 多文件程序
13.1 使用多文件程序的动机
13.2 多文件程序的创建
13.3 文件间的通信
13.4 超长数值类
13.5 高楼电梯模拟
13.6 本章摘要
13.7 思考题
13.8 项目
第14章 模板和异常
14.1 函数模板
14.2 类模板
14.3 异常
14.4 本章摘要
14.5 思考题
14.6 练习
第15章 标准模板库
15.1 STL简介
15.2 算法
15.3 顺序容器
15.4 迭代器
15.5 特殊迭代器
15.6 关联容器
15.7 存储用户自定义对象
15.8 函数对象
15.9 本章摘要
15.10 思考题
15.11 练习
第16章 面向对象软件开发
16.1 软件开发过程的演变
16.2 Use Case建模
16.3 程序设计的问题
16.4 程序LANDLORD的细化阶段
16.5 从Use Case到类
16.6 编写代码
16.7 程序的交互
16.8 最终想法
16.9 本章摘要
16.10 思考题
16.11 项目
附录A ASCII表
附录B C++优先级表和关键字
B.1 优先级表
B.2 关键字
附录C Microsoft Visual C++
C.1 屏幕元素
C.2 单文件程序
C.3 多文件程序
C.4 创建简单控制台图形程序
C.5 调试
附录D Borland C++ Builder
D.1 在C++ Builder中运行程序
D.2 清除屏幕
D.3 新建项目
D.4 命名和保存项目
D.5 由现有文件开始
D.6 编译.链接和执行
D.7 将源头文件添加到项目中
D.8 多文件项目
D.9 简单控制台图形程序
D.10 调试
附录E 简单控制台图形
E.1 使用简单控制台图形程序
E.2 简单控制台图形函数
E.3 简单控制台图形函数的实现
E.4 程序清单列表
附录F STL算法和成员函数
F.1 算法
F.2 成员函数
F.3 迭代器
附录G 思考题和练习解答
G.1 第1章
G.2 第2章
G.3 第3章
G.4 第4章
G.5 第5章
G.6 第6章
G.7 第7章
G.8 第8章
G.9 第9章
G.10 第10章
G.11 第11章
G.12 第12章
G.13 第13章
G.14 第14章
G.15 第15章
G.16 第16章
附录H 参考书目
H.1 高级C++
H.2 定义文档
H.3 统一建模语言(UML)
H.4 C++的历史
H.5 其他主题
猜您喜欢