第一篇 跟我练习 1
第1章 选择最方便的开发工具 1
1.1 可用的开发工具简介 1
1.1.1 Borland C++3.1/4.0/4.5 1
1.1.2 Borland C++5.0 2
1.1.3 Borland C++Builder 4.0/5.0/6.0 2
1.1.4 Visual C++6.0 2
1.2 Borland C++5.0的安装 2
1.2.1 典型安装 2
1.2.2 用户选择安装 2
1.2.3 进入IDE 3
1.3 程序的编辑、编译、链接和调试 4
1.4 上机编写程序与调试程序 5
1.4.1 开发工具的设置 5
1.4.2 两个实训例子 6
1.4.3 代码编译和链接的方法 9
1.4.4 程序的运行 9
1.5 思考与练习 10
第2章 C++基础 12
2.1 两个输入/输出流对象 12
2.1.1 cout输出流的概念 12
2.1.3 cin输入流的概念 13
2.1.2 cout的初步使用 13
2.1.4 输入/输出流的使用 14
2.1.5 输入/输出流的应用程序 15
2.1.6 输入流的使用 17
2.2 基本结构实训 18
2.2.1 程序的基本结构 18
2.2.2 程序的风格 20
2.3 C++对C的扩充 20
2.3.1 注释 20
2.3.2 const关键字 21
2.3.3 注释和const的使用 21
2.3.4 函数原型 22
2.3.5 内联函数 23
2.3.6 带默认参数的函数 23
2.3.7 函数重载 24
2.3.8 强制转换 25
2.3.9 全局变量访问操作符——全局变量与局部变量 26
2.4 思考与练习 27
第3章 面向对象程序设计实训 30
3.1 类和对象 30
3.1.1 从C的结构体开始理解类 30
3.1.2 类的概念和定义 31
3.1.3 样例Point类的定义和使用 34
3.1.4 成员函数 35
3.1.6 构造函数和析构函数 36
3.1.5 对象的定义及引用 36
3.2 理解继承和派生类 39
3.2.1 继承概述 40
3.2.2 派生类的构造函数和析构函数 42
3.2.3 派生类的例程——从平面点派生为空间点 42
3.2.4 派生类应用的技术 44
3.3 理解面向对象程序的要点 46
3.4 思考与练习 46
4.1 动态分配(使用new和delete)概念 52
4.1.1 new和delete作用及使用语法 52
第4章 设计技术 52
第二篇 程序设计 52
4.1.2 与使用C函数比较 53
4.1.3 初始化例子 54
4.1.4 动态数组例子 55
4.1.5 动态对象数组例子 56
4.2 引用的概念和应用 58
4.2.1 引用的概念 59
4.2.2 使用引用的原因 62
4.3 函数模板 63
4.3.1 函数模板 63
4.3.2 定义函数模板语法 64
4.3.3 模板函数与设置模板函数 65
4.3.4 例子 66
4.4 函数的设计 70
4.4.1 函数的设计概述 71
4.4.2 函数的功能设计 76
4.5 使用string类 79
4.5.1 使用string类的构造函数 79
4.5.2 使用string类的接口 80
4.5.3 使用string类创建对象的方法 82
4.5.4 使用string类设计一个Person类 82
4.6 类的设计——设计定时器类 84
4.7 思考与练习 85
5.1.2 默认构造函数的设计 89
5.1.1 设计默认构造函数 89
5.1 默认构造函数的设计 89
第5章 类的设计和使用 89
5.1.3 设计默认构造函数的例子Person0.H和501.cpp 90
5.2 静态成员 92
5.2.1 使用静态成员 92
5.2.2 静态成员的设计 92
5.3 拷贝构造函数 94
5.3.1 为何需要拷贝构造函数 95
5.3.2 拷贝构造函数的设计 97
5.4 向函数传递对象 98
5.4.1 向函数传递对象的概念 98
5.4.2 向函数传递对象的程序设计 98
5.5.1 何时需要友元 100
5.5.2 友元的设计程序 100
5.5 友元 100
5.6 无名对象 103
5.6.1 无名对象生成 103
5.6.2 无名对象使用的例程 103
5.6.3 无名对象与强制转换 104
5.7 思考与练习 104
第6章 深入介绍程序设计技术 110
6.1 操作符重载 110
6.1.1 操作符重载概念 110
6.1.2 C++可以由用户自己定义操作关系 111
6.1.3 定义操作符函数 111
6.1.4 二元操作符成员函数重载范例601.cpp系列 114
6.1.5 成员函数重载的问题 119
6.1.6 一元操作符重载 120
6.1.7 赋值操作符重载的必要性 125
6.1.8 函数调用操作符()重载 127
6.1.9 友元操作符函数 127
6.1.10 一个综合例子606.cpp 129
6.2 类模板与模板类的应用 130
6.2.1 类模板的作用 130
6.2.2 把Complex类例子改为类模板 131
6.3 动态多态性与虚函数 134
6.3.1 多态性概念 134
6.3.2 使用虚函数的要求 140
6.3.3 纯虚函数与抽象类 141
6.3.4 为何用虚函数 143
6.4 类和派生类的设计 143
6.4.1 基类的设计 143
6.4.2 派生类的设计 144
6.4.3 派生类的构造函数和初始化 149
6.4.4 派生类构造函数调用次序实例 152
6.5 思考与练习 154
第7章 流的应用 161
7.1 输入/输出流 161
7.1.1 使用C++流 161
7.1.2 格式化I/O 162
7.1.3 流的输入cin 166
7.2 流的格式控制应用实例 167
7.2.1 输出流的格式控制设计 167
7.2.2 输入流的格式控制 167
7.3 创建用户插入/提取符函数 169
7.3.1 创建用户自己的插入符 169
7.3.2 重载提取符 172
7.4 文件I/O 173
7.4.1 文件打开及关闭 173
7.4.2 简单文件I/O例子 174
7.4.3 读写文本文件例子程序 176
7.4.4 二进制文件的I/O处理 177
7.5 思考与练习 182
第8章 调试手段和调试方法 185
8.1 最通用、最简便的调试手段 185
8.1.1 利用编译系统的出错报告 185
第三篇 调试与Windows应用 185
8.1.2 利用注解 188
8.1.3 增加调试用输出 188
8.2 利用IDE的集成调试器 190
8.2.1 利用集成调试器调试的要点 190
8.2.2 3种进入调试命令的方法 190
8.2.3 控制和暂停程序的运行 192
8.2.4 查看数据 193
8.3.2 跟踪成员函数 195
8.3 类和对象的调试 195
8.3.1 对象数据 195
8.3.3 派生类对象的数据 196
第9章 用Visual C++设计Windows程序入门 197
9.1 Windows编程基础 197
9.1.1 Windows的编程特点 197
9.1.2 Windows用户界面对象 197
9.1.3 面向对象的编程思想 198
9.1.4 消息驱动的程序结构 198
9.1.5 分段式的编程结构 198
9.2.2 集成工作环境 199
9.2.1 Visual C++概述 199
9.1.6 与设备无关的图形接口 199
9.2 Visual C++开发环境 199
9.2.3 工程项目生成 208
9.3 用AppWizard向导创建第一个Windows程序 209
9.3.1 进入VC开发环境 209
9.3.2 AppWizard向导工具介绍 210
9.3.3 使用AppWizard实训 211
9.4 第二个Windows程序——使用控件和窗口 212
9.4.1 控件介绍 212
9.4.2 CMainFrame类和窗口 212
9.4.3 编程步骤 214
9.5 思考与练习 218
A.2 第2章参考答案 219
附录A 练习题的参考答案 219
A.1 第1章参考答案 219
A.3 第3章参考答案 220
A.4 第4章参考答案 223
A.5 第5章参考答案 231
A.6 第6章参考答案 235
A.7 第7章参考答案 239
A.8 第8章参考答案(略) 241
A.9 第9章参考答案(略) 241
附录B 学习过程中疑问与答复(Q and A) 242
B.1 关于开发工具与调试 242
B.2 关于程序 243