C++面向对象程序设计

-
【作 者】曹静 主编
【I S B N 】978-7-5084-3874-4
【责任编辑】张玉玲
【适用读者群】高职高专
【出版时间】2006-08-01
【开 本】16开本
【装帧信息】平装(光膜)
【版 次】第1版
【页 数】320
【千字数】
【印 张】
【定 价】¥28
【丛 书】软件职业技术学院“十一五”规划教材
【备注信息】
简介
本书特色
前言
章节列表
精彩阅读
下载资源
相关图书
本书系统地介绍了面向对象程序设计的概念和C++语言的基础知识。全书将编程语言和编程思想融为一体,使读者在一步步学习C++语言的同时,可以一层层掌握面向对象的编程原理。为方便读者理解C++面向对象程序设计的相关知识,书中采用通俗易懂的方式介绍了有关理论和原理,并辅以大量实例和插图。每章均配有相关内容的项目设计,便于读者进行实际操作和练习。
本书内容翔实、叙述清晰、注重实践、习题丰富,可作为高职高专各个专业的计算机入门教材,也适合各领域想在计算机方面进修提高的人员自学使用。
C++语言是由AT&T贝尔实验室的Bjarne Stroustrup建立的一种功能强大的高级编程语言。选择C++讲授编程是因为它支持面向对象的方法开发软件。面向对象方法的优点是:我们可以用它来开发极为复杂的软件系统,而且它所使用的许多技术是与建造复杂的物理系统,如制造船舶、飞机或盖大楼时所使用过的技术类似。本书的目标是把它作为大学生学习编程的第一门课程,而且设计成适合所有专业的学生。作者假定他们预先没有学过任何编程语言,而所用的数理知识也仅限于大学一年级水平。
本书是全国示范性软件职业学院计算机及其相关专业指定教材,针对全国示范性软件职业学院的特点,淡化理论,够用为度,强化技能,重在实际操作,以项目设计贯穿全书,再辅以大量实例,让学生能在实践中掌握C++语言和面向对象的软件开发方法。
本书是作者在多年教学实践和科学研究的基础上,参阅了大量国内外相关教材后,几经修改而成的,主要特点如下:
(1)知识点全面,语言严谨、精练。
C++中概念众多且比较抽象,本书对这些概念进行了清楚准确地解释并结合实例说明,让读者能全面掌握每一个知识点。
(2)实际项目开发与理论教学紧密结合。
为了使读者能快速地掌握C++相关知识的使用方法,本书在各个章节的重要知识点后面都附有典型的实训,本书最后一章更结合每章中的实训内容给出一个完整的项目。
(3)合理、有效的组织。
本书按照由浅入深的顺序,循序渐进地介绍了C++面向对象程序设计的相关知识。各个章节在编写时都是层层展开、环环相扣的。
(4)内容充实、实用。
本书不再使用传统教材中那些最多只有数百行组成且在实践中极少使用的示例程序,各章的实例都是实用性很强的程序或程序模块,并且每章实例都是作为一个大型软件项目的一部分出现,实例代码可维护性强、重用率高,真正体现了面向对象程序开发的思想。
(5)本书配有全部的程序源文件和电子教案。
为方便读者使用,书中全部实例的源代码及电子教案均免费赠送给读者。
本书共分四大部分,第一部分包括第1章至第3章,主要介绍C++基本语法概念和程序结构;第二部分包括第4章至第6章,主要介绍类、类的封装、继承和多态等;第三部分包括第7章至第9章,主要介绍I/O流、模板和异常处理;第四部分包括第10章,是一个综合全书内容的实训项目。
本书由曹静任主编,董宁、陈丹任副主编,张宇、文凡、刘嵩、刘洁、肖英参加编写,董宁、陈丹、库波统编全稿。
由于时间仓促,加之编者水平有限,书中不妥或错误之处在所难免,恳请广大读者批评指正,作者联系方式:jingcao_2002@163.com。
编者
2006年5月
前言
第1章 面向对象程序设计概述 1
1.1 面向对象的基本概念 1
1.2 C++面向对象程序设计 2
1.3 C++程序的基本组成 3
1.4 Visual C++ 6.0开发环境 6
【实训1】 简单的C++程序实例 10
本章小结 11
习题一 11
第2章 C++语言基础 12
2.1 数据类型和基本输入输出 12
2.1.1 基本数据类型 12
2.1.2 常量 13
2.1.3 变量 16
2.1.4 基本输入/输出 17
2.2 运算符和表达式 18
2.2.1 算术运算符和算术表达式 18
2.2.2 赋值运算符和赋值表达式 19
2.2.3 逗号运算符和逗号表达式 20
2.2.4 关系运算符和关系表达式 20
2.2.5 逻辑运算符和逻辑表达式 20
2.2.6 ++、--与sizeof运算符 21
2.2.7 位运算符 22
2.2.8 三目运算符 24
2.2.9 运算符的优先顺序 24
2.2.10 运算式中的类型转换 25
2.3 基本控制结构 26
2.3.1 表达式语句、空语句和复合语句 27
2.3.2 选择控制语句 28
2.3.3 循环控制语句 32
2.3.4 break和continue语句 35
【实训2】 程序控制结构的应用 37
2.4 函数 39
2.4.1 函数的定义和调用 39
2.4.2 函数的参数传递 40
2.4.3 函数参数的引用传递 41
2.4.4 带默认形参值的函数 43
2.4.5 函数的嵌套与递归调用 43
2.4.6 内联函数 46
2.4.7 函数的重载 47
【实训3】 函数的应用 48
2.5 构造类型 50
2.5.1 数组与字符串 50
2.5.2 结构体 56
2.5.3 共用体 60
2.5.4 枚举类型 61
2.5.5 用typedef定义类型 63
2.6 指针 63
2.6.1 指针和指针变量 63
2.6.2 &和*运算符 64
2.6.3 指针的赋值与运算 64
2.6.4 指针和数组 66
2.6.5 指针和结构体 70
2.6.6 指针和函数 71
2.6.7 动态内存分配new和delete 75
【实训4】 指针的综合应用 76
项目设计1 控制台程序的人机界面设计 83
本章小结 87
习题二 88
第3章 C++程序的结构 91
3.1 作用域和可见性 91
3.1.1 作用域 91
3.1.2 可见性 92
3.2 生存期 93
3.2.1 静态生存期 93
3.2.2 动态生存期 93
3.3 变量的存储类型 94
3.3.1 局部变量 95
3.3.2 全局变量 96
3.3.3 外部变量 97
3.4 编译预处理和多文件结构 98
3.4.1 编译预处理命令 98
3.4.2 多文件组织结构 101
项目设计2 预处理及多文件结构的编译 103
本章小结 107
习题三 107
第4章 类与对象 110
4.1 面向对象程序设计的基本特点 110
4.1.1 抽象 110
4.1.2 封装 111
4.1.3 继承 112
4.1.4 多态 113
4.2 建立类与对象 114
4.2.1 类的声明与实现 114
4.2.2 类成员的访问控制 115
4.2.3 类的成员函数 116
4.2.4 对象的建立与使用 119
4.3 构造函数和析构函数 121
4.3.1 构造函数 121
4.3.2 析构函数 127
4.4 类的作用域和对象的生存期 128
4.4.1 类的作用域 128
4.4.2 对象的生存期 129
4.5 类的静态成员 130
4.5.1 静态数据成员 130
4.5.2 静态函数成员 133
【实训5】 对象与类成员的应用 136
4.6 常类型 138
4.6.1 常引用 138
4.6.2 常对象 139
4.6.3 用const修饰的类成员 139
4.7 数组、指针与对象 142
4.7.1 对象数组 142
4.7.2 对象指针 144
4.7.3 动态配置对象内存 145
4.7.4 浅拷贝和深拷贝 147
4.7.5 this指针 152
4.8 类的组合 152
4.8.1 类的组合 152
4.8.2 前向引用声明 157
【实训6】 对象数组与指针的综合应用 157
4.9 友元 161
4.9.1 友元函数 161
4.9.2 友元类 164
项目设计3 面向对象程序设计中类的应用 165
本章小结 173
习题四 173
第5章 类的继承与派生 175
5.1 继承与派生 175
5.1.1 基类与派生类 175
5.1.2 派生类的声明 176
5.1.3 派生类生成过程 177
5.2 继承的三种方式 178
5.2.1 公有继承 179
5.2.2 私有继承 181
5.2.3 保护继承 184
5.3 派生类的构造函数和析构函数 186
5.3.1 构造函数 186
5.3.2 析构函数 189
5.4 多继承和虚基类 191
5.4.1 派生类成员的标识与访问 191
5.4.2 作用域分辨 192
5.4.3 多继承和虚基类 192
5.4.4 虚基类及其派生类的构造函数 195
5.5 赋值兼容规则 196
【实训7】 类继承与派生的应用 198
项目设计4 类的组织结构在校园信息管理系统中的应用 202
本章小结 211
习题五 211
第6章 多态性与虚函数 212
6.1 多态性概述 212
6.1.1 多态的类型 212
6.1.2 多态的实现 212
6.2 重载与再定义 213
6.2.1 函数的重载 213
6.2.2 函数的再定义 214
6.3 运算符重载 216
6.3.1 运算符重载的规则 216
6.3.2 运算符重载为成员函数 217
6.3.3 运算符重载为友元函数 222
6.4 虚函数 224
6.4.1 一般虚函数成员 224
6.4.2 虚析构函数 226
6.5 抽象类 227
6.5.1 纯虚函数 227
6.5.2 抽象类 227
【实训8】 抽象基类及虚函数的应用 229
项目设计5 多态在校园信息管理系统中的应用 233
本章小结 243
习题六 243
第7章 模板 244
7.1 模板的概念 244
7.2 函数模板 244
7.3 类模板 246
项目设计6 顺序表模板 250
本章小结 254
习题七 254
第8章 数据流与文件的输入/输出 256
8.1 I/O流的概念 256
8.2 数据流的控制 257
8.2.1 数据流的格式控制 257
8.2.2 常用的输入/输出函数 261
8.2.3 数据流的错误侦测 262
8.3 文件的输入/输出 262
8.3.1 fstream类 262
8.3.2 格式化文字模式的文件I/O 264
8.3.3 二进制模式的文件I/O 266
8.3.4 文件指针的使用 267
【实训9】 利用文件存储对象 270
项目设计7 校园信息管理系统中的数据存储 272
本章小结 279
习题八 280
第9章 异常处理 281
9.1 异常处理的基本思想 281
9.2 C++异常处理的实现 281
9.2.1 异常处理的机制 281
9.2.2 异常处理的规则 283
9.3 异常处理中的构造与析构 285
本章小结 287
习题九 287
第10章 项目设计——校园信息管理系统 288
10.1 系统分析与设计 288
10.2 程序设计分析 288
10.3 源程序及说明 290
10.4 运行结果与分析 303
参考文献 307
- 程序设计基础实践教程(C/C++语言版) [张桂芬 葛丽娜]
- C++案例项目精讲 [主编 杨国兴]
- C++程序设计实践教程(第三版) [主编 刘卫国 曹岳辉]
- C++程序设计(第三版) [主编 曹岳辉 刘卫国]
- 数据挖掘算法—基于C++及CUDA C [蒂莫西•马斯特斯(Timothy]
- C++程序设计简明教程 [黄能耿 黄致远 胡丽丹]
- Visual C++6.0程序项目案例教程 [朱 铭 曾强聪 编著]
- 嵌入式应用Qt_C++传感数据采集开发实训教程 [主编 刘和文 文燕 谢忠敏]
- C++程序设计简明教程(第二版) [主 编 王晓东 副主编 陈艳海 ]
- C++ STL基础案例教程 [钟琪 著]
- C++程序设计基础教程 [主编 刘志宝 朱伟华 谢利民]
- Visual C++ & Android程序设计综合实训(第二版) [主编 梁建武]
- Visual C++程序设计教程(第二版) [梁建武]
- C++应用程序设计 [刘彦姝 谢景伟]
- C++程序设计 [陈国志 丛华 单正 编著]
- C++面向对象程序设计习题解答及上机指导 [李素若 杜华兵]
- C++面向对象程序设计 [李素若 杜华兵]
- C/C++程序设计学习辅导 [李婷 李云峰 编著]
- C/C++程序设计 [李云峰 李婷 编著]
- 数字音频规范与程序设计:基于Visual C++开发 [曹强 编著]
- C++程序设计基础实践教程 [主编 杨长兴 李利明]
- C语言程序设计——Visual C++ 6.0环境(第二版) [张昕]
- C++程序设计(第二版) [主编 杨长兴 刘卫国]
- C++程序设计实践教程(第二版) [主 编 刘卫国 杨长兴]
- C++程序设计基础 [主编 杨长兴]
- 数据结构(C++描述)习题解答及实习指导 [李根强 谢月娥 主编]
- 数据结构(C语言版)学习指导与习题解答 [赵坚 姜梅 主编]
- C++程序设计实验指导与实训 [蔡立军 杜四春 银红霞 编著]
- C++程序设计 [杜四春 银红霞 蔡立军 编著]
- 数据结构(C++描述) [李根强 主 编]