《新编计算机类本科规划教材:面向对象程序设计与C++语言》讨论面向对象程序设计的基本概念,以及使用Visual C++进行Windows用户界面设计的基本方法。《新编计算机类本科规划教材:面向对象程序设计与C++语言》的内容主要包括:C++语言基础、面向对象程序设计、类和对象、友元和运算符重载、继承、运行时的多态性和抽象类、模板、异常处理、I/O流类库、MFC编程、对话框及常用控件。《新编计算机类本科规划教材:面向对象程序设计与C++语言》的所有例子都用Visual C++ 6.0调试通过。
《新编计算机类本科规划教材:面向对象程序设计与C++语言》既可作为高等院校计算机等专业面向对象程序设计课程的教材,也可作为从事计算机开发和应用的工程技术人员的自学参考书。
第1章 C++语言基础
1.1 数据类型
1.1.1 基本数据类型
1.1.2 枚举类型
1.1.3 结构体
1.2 基本语句
1.2.1 赋值语句
1.2.2 自加减表达式语句
1.2.3 分支语句
1.2.4 循环语句
1.2.5 流程控制语句
1.3 变量
1.3.1 变量的定义方法
1.3.2 const类型限定符
1.3.3 函数形式的变量类型转换
1.4 函数
1.4.1 返回值
1.4.2 输入型参数
1.4.3 输出型参数
1.4.4 系统库函数和用户自定义函数
1.4.5 函数原型
1.4.6 内联函数
1.4.7 带默认参数的函数
1.4.8 函数重载
1.5 指针和引用
1.5.1 指针变量
1.5.2 引用变量
1.6 自定义语句
1.7 程序预处理
1.8 new和delete运算符
1.9 输入和输出
1.1 0名字空间
习题1
第2章 面向对象程序设计
2.1 从面向过程到面向对象
2.1.1 设计实例对比
2.1.2 从面向过程到面向对象
2.2 面向对象技术的基本概念
2.2.1 类
2.2.2 实例
2.2.3 消息
2.3 面向对象技术的基本特征
2.3.1 抽象性
2.3.2 封装性
2.3.3 继承性
2.3.4 多态性
2.4 面向对象的软件开发
2.4.1 面向对象分析
2.4.2 面向对象设计
2.4.3 面向对象实现
2.5 面向对象程序设计的优点
习题2
第3章 类和对象
3.1 类
3.1.1 类的定义
3.1.2 成员变量
3.1.3 构造函数和类的实例化
3.1.4 成员函数和对象的消息
3.1.5 析构函数
3.1.6 const修饰符
3.1.7 成员函数重载
3.2 对象
3.3 对象成员变量
3.3.1 整体-部分对象模式和子对象
3.3.2 子对象和构造函数设计
3.3.3 构造函数和析构函数自动调用过程
3.4 内部类
3.5 static成员
3.6 自引用对象指针this
3.7 抽象过程与类
3.8 设计举例——银行贷记卡系统
习题3
第4章 友元和运算符重载
4.1 友元的概念
4.2 定义友元的方法
4.3 运算符重载
4.3.1 运算符重载的定义和规定
4.3.2 运算符重载为类的成员函数
4.3.3 运算符重载为类的友元函数
4.3.4 两种运算符重载方法的比较
4.4 设计举例
4.4.1 数组类设计
4.4.2 字符串类设计
习题4
第5章 继承
5.1 面向对象的重要特征:继承性
5.2 继承
5.2.1 基类、派生类和保护成员
5.2.2 派生类的定义
5.2.3 派生类的3种继承方式
5.2.4 派生类的基类子对象
5.2.5 派生类的析构函数
5.2.6 派生类与基类的关系
5.3 赋值兼容规则
5.4 派生类对基类成员函数的覆盖
5.5 多重继承
5.5.1 多重继承的意义
5.5.2 多重继承的设计方法
5.5.3 多重继承的二义性问题
5.5.4 虚基类
5.6 设计举例
5.6.1 图书馆信息——公有继承举例
5.6.2 链式堆栈——私有继承举例
习题5
第6章 运行时的多态性和抽象类
6.1 面向对象的重要特征:多态性
6.2 运行时的多态性
6.2.1 虚函数和运行时的多态性
6.2.2 动态绑定
6.2.3 虚函数和派生类对基类成员函数覆盖的区别
6.2.4 虚析构函数
6.3 抽象类
6.4 设计举例
习题6
第7章 模板
7.1 参数多态性和模板
7.1.1 参数多态性
7.1.2 模板
7.2 类模板
7.3 函数模板
习题7
第8章 异常处理
8.1 异常和异常处理
8.1.1 异常的基本类型
8.1.2 传统的异常处理方法及其问题
8.2 C++语言的异常处理方法
8.2.1 基本的异常处理方法
8.2.2 多个异常的处理方法
8.3 异常类的设计
8.4 异常抛出和处理的两种方式
习题8
第9章 I/O流类库
9.1 基本概念
9.2 C++的基本流类结构
9.3 istream类和ostream类
9.4 格式控制
9.4.1 格式控制成员函数
9.4.2 操作符
9.5 文件的读/写
9.5.1 文件的打开和关闭
9.5.2 文本文件的读/写
9.5.3 二进制代码文件的读/写
9.5.4 随机访问文件
9.6 可流类
习题9
第10章 MFC编程
10.1 MFC体系结构
10.2 用MFCAppWizard自动生成Windows程序
10.2.1 应用程序框架
10.2.2 MFC消息映射
10.2.3 使用ClassWizard工具
10.3 文档/视图结构
10.3.1 文档模板类
10.3.2 文档类
10.3.3 视图类
10.4 MFCWindows应用程序典型执行过程
10.4.1 Windows应用程序执行过程
10.4.2 MFCWindows应用程序执行过程
习题10
第11章 对话框及常用控件
11.1 对话框的创建与使用
11.1.1 对话框的创建
11.1.2 对话框的使用
11.1.3 对话框的销毁
11.1.4 对话框数据交换和验证机制
11.2 MFC通用对话框
11.2.1 文件对话框
11.2.2 字体对话框
11.2.3 颜色对话框
11.3 常用控件
11.3.1 静态文本控件
11.3.2 组框控件
11.3.3 编辑框控件
11.3.4 按钮控件
11.3.5 列表框控件
11.3.6 组合框控件
11.4 简单数据类型
11.4.1 CString类
11.4.2 CTime类
11.4.3 CPoint类
11.4.4 CRect类
11.4.5 CSize类
习题11
参考文献
面向对象程序设计是目前软件开发的主流方法。从面向对象分析到面向对象设计的过程,以及从面向对象设计到面向对象实现的过程具有平滑无缝过渡的性质,这是面向对象方法区别于其他传统的软件开发方法的一个重要特点。
2.5面向对象程序设计的优点
在2.1.2节曾指出,用面向过程程序设计方法进行软件开发存在很多问题,主要表现为:①软件模块重用难;②软件系统功能扩展难;③软件维护难。面向对象程序设计技术可以有效地解决这些方面的问题。
面向对象程序设计具有重用性好、扩展性好和维护性好的优点。
1.重用性
重用性是面向对象程序设计的核心思想所在。面向对象程序设计的抽象性、封装性、继承性和多态性特点,都首先围绕着软件模块的重用性这个焦点问题,并为之服务。
可重用软件模块要求具有以下基本特点。
①结构完整,逻辑严谨,功能明确,模块独立。
②可移植性好,可方便地在各种不同的软硬件环境下,以及各种不同的应用程序中使用。
③具有良好的与外界交互和通信的功能。
④具有良好的与外界协同工作的能力。
面向对象程序设计的抽象性使得所设计的类能抓住事物的本质特征,因而具有普遍性,具有普遍性的类模块自然被重用的可能性大;封装性使得设计的类有对外部隔离的内部结构,但提供了与外部交互和通信的接口,外部程序不能随意影响类的内部结构;继承性使得一个新类可以利用一个已经存在类的资源,这本身就是软件重用;多态性使得设计的类具有灵活性,这种灵活性使得所设计的类的抽象性更强,因而重用性也更强。
2.扩展性
现代应用软件的更新换代越来越快,主要原因有二:第一,用户业务发展变化引起的应用软件功能修改;第二,计算机软硬件发展造成的软硬件升级。应用软件要能很好地跟上这种发展变化,就需要具有良好的扩展性,要能方便、快速、正确地进行应用软件的功能扩展。
面向对象程序设计的扩展性主要体现在它从分析到设计、再到实现整个过程的一致性上。抽象地看,面向对象程序设计的整个设计过程是:分析过程建立起基本的框架结构,设计过程在框架内加入具体的细节内容,实现过程用某种高级程序设计语言实现所有细节内容。
……